王紅元高級講師
專注移動開發(fā)領(lǐng)域,多年iOS開發(fā)和教學(xué)經(jīng)驗,曾經(jīng)帶領(lǐng)團隊開發(fā)出眾多款 優(yōu)秀APP作品。
國內(nèi)知名視頻聊天軟件 < 新浪秀場 > 就出自王老師之手,王老師全 面負責 < 新浪秀場 > iOS客戶端的設(shè)計和開發(fā),并參與了 < 新浪秀場 > Android、Windows 、web端
開發(fā)。同時王老師還曾兼職擔任過多家公司技術(shù)顧問,幫助其解決開發(fā)中的 重點難題。
除此之外,王老師還主導(dǎo)開發(fā)了< 智慧城市 > < 天翼看交通 > < 公交wifi > 等熱門APP。王老師開發(fā)過的作品涉及旅游、交通、社交、視頻等方面,對即時聊天、流媒體等技術(shù)有深入研究。
王老師不但開發(fā)經(jīng)驗豐富,授課風(fēng)趣幽默,且激情四射。擅長以各種生活中 的案例出發(fā),幫助學(xué)生理解消化學(xué)習(xí)中的各種難點。另外,王老師教學(xué)總是以學(xué)生角度思考講解,備受學(xué)生喜愛。
學(xué)習(xí)Java編程需要參加Java培訓(xùn)嗎?
隨著社會信息的發(fā)展,Java技術(shù)已經(jīng)無處不在,無論是手機軟件、手機Java 游戲還是電腦軟件等,只要你使用到電子產(chǎn)品就會碰到和Java有關(guān)的東西,更多的企業(yè)正采用Java語言開發(fā)網(wǎng)站,而在所有程序員中,Java開發(fā)工程師 就占據(jù)20%的比例。所以,現(xiàn)在依然有很多人選擇學(xué)習(xí)Java語言。
學(xué)Java參加Java培訓(xùn)很有必要嗎?很有必要,理由如下:
當下選擇自學(xué)Java的朋友,大部分都會考慮網(wǎng)上查找Java入門視頻跟著學(xué)習(xí) ,網(wǎng)上的Java入門視頻質(zhì)量有沒有保障呢?首先數(shù)量多,你該怎么選擇好的Java入門視頻資料呢?哪些Java入門視頻資料中包含著已經(jīng)淘汰的Java技術(shù) ,你可以區(qū)分出來嗎?
當然,如果你只是想先了解下Java編程,學(xué)一些基礎(chǔ)的皮毛,那么Java基礎(chǔ) 教程還是可以滿足你的需求。但Java培訓(xùn)小編提醒你,真想學(xué)習(xí)Java基礎(chǔ)教程就該找全套的教學(xué)視頻,零零湊湊的建議你還不如不學(xué)。推薦**網(wǎng)的全套 免費Java教學(xué)視頻針對零基礎(chǔ),想要入門的同學(xué)十分的靠譜,簡單易懂。
自學(xué)Java首先Java學(xué)習(xí)資料的選擇就是個相當大的問題,拋去這個問題。自 學(xué)Java沒有專業(yè)Java老師在旁輔導(dǎo),那么你勢必要花出更多的時間和精力學(xué)Java,你口上說著計劃每天花八個小時學(xué)Java,你真的能夠做到嗎?自學(xué) Java,**怕自欺欺人,語言上的巨人行動上的矮子。
java工程師課程
課程大綱
一階段 | 二階段 | 三階段 |
---|---|---|
|
|
|
dfs序 分塊求眾數(shù)
>
鉛導(dǎo)體
問題描述 何老板要求第三題要很簡單,**好是鉛導(dǎo)體的難度。 于是,nodgd把N個鉛塊用N?1根導(dǎo)線相連,就形成了一個鉛導(dǎo)體。只要是在這個基礎(chǔ)上出題,就符合何老板的要求。nodgd為了方便,就把其中的一個鉛塊固定在了墻上,其他鉛塊在導(dǎo)線的作用下自然下垂。每個鉛塊有個固定的純度,若干個相同純度的鉛塊可以聚變發(fā)電,發(fā)電的電壓與鉛塊的數(shù)量成正比。每當nodgd需要電療的時候,就在鉛導(dǎo)體上選一個鉛塊,把它和掛在它下面的所有鉛塊都取下來,在這當中選一些純度相同的鉛塊發(fā)電,發(fā)電之后將這些鉛塊掛回原來的位置。nodgd希望電療的電壓越高越好,在電壓相同的情況下,nodgd又希望使用純度更低的鉛塊。 但是ciocio經(jīng)常來搗亂,他時不時的把整個鉛導(dǎo)體取下來,重新選一個鉛塊固定到墻上,其他的鉛塊繼續(xù)自然下垂。那么問題來了,nodgd每次都想享受**高電壓的電療,需要你大聲喊出應(yīng)該使用多少個純度是多 少的鉛塊。
輸入格式 輸入文件C.in。 **行四個整數(shù)N, A, Q, I,表示鉛塊的數(shù)量、鉛塊純度的范圍、操作的總次數(shù)、測試點編號。 鉛塊按1 ~ N編號,一開始nodgd把編號為1的鉛塊固定在墻上。鉛塊的純度是1 ~ A之間的一個整 數(shù)。 接下來N ? 1行,每行兩個整數(shù)u, v,表示有一條導(dǎo)線連接。 接下來一行,N個整數(shù),表示每個鉛塊的純度。 接下來Q行,每行輸入兩個整數(shù)op, u。 若op = 1,表示ciocio把整個鉛導(dǎo)體取下來,再把編號為u的鉛塊重新固定在墻上。 若op = 2,表示nodgd把編號為u的鉛塊以及掛在他下面的所有鉛塊暫時取下來,選出其中一些鉛塊進行聚變發(fā)電。如果要求該組測試點要求強制在線,設(shè)上一次輸出的答案兩個數(shù)分別為lasta和lastb,則u′ = (u lasta×23 lastb×233)%N 1才是真正的節(jié)點編號。
輸出格式 輸出文件C.out。 每次op = 2的時候輸出一行,兩個整數(shù),分別是使用鉛塊的純度和數(shù)量。
樣例輸入 5 3 8 0 1 2 1 3 3 4 3 5 1 1 2 2 3 2 3 2 1 2 5 1 3 2 4 2 2 2 1 2 3
樣例輸出 2 2 1 2 3 1 2 1 1 1 1 2 1 2
數(shù)據(jù)范圍
dfs序 分塊求眾數(shù),很機智的一個做法將新編號對應(yīng)的純度數(shù)組復(fù)制一遍,處理根在子樹內(nèi)就會方便很多。
#include<iostream> #include<cstdio> #include<algorithm> #include<cstdlib> #include<cstring> #include<cmath> #define ll long long using namespace std; const int base=500; template <typename T> inline void _read(T& x){ char t=getchar();bool sign=true; while(t< 0 ||t> 9 ){if(t== - )sign=false;t=getchar();} for(x=0;t>= 0 &&t<= 9 ;t=getchar())x=x*10 t- 0 ; if(!sign)x=-x; } int n,m,q,I,N,S; int tot,e,root; int lasta,lastb; int vistime; struct line{ int from,to; line(){} line(int x,int y){from=x;to=y;} }; line edge[200005]; int last[100005],_next[200005]; void add_edge(int x,int y){ edge[ e]=line(x,y); _next[e]=last[x]; last[x]=e; } int father[100005],dep[100005],p[100005][35],id[100005],R[100005],purity[100005],a[100005]; void dfs(int x,int fa){ int i,j,k,v; id[x]= vistime; dep[x]=dep[fa] 1; father[x]=fa; k=ceil(log(dep[x])/log(2)); p[x][0]=fa; for(i=1;i<=k;i )p[x][i]=p[p[x][i-1]][i-1]; for(i=last[x];i;i=_next[i]){ v=edge[i].to; if(v==fa)continue; dfs(v,x); } R[x]=vistime; } struct node{ int Purity,sum; node(){} node(int x,int y){Purity=x;sum=y;} }; node block[605][1005]; int cnt[100005]; int all[605][100005]; void divide(){ int i,j,k,t1,t2; N=(n<<1); tot=(N-1)/base 1; for(i=1;i<=tot;i ){ int pure=0,sum=0; for(j=i;j<=tot;j ){ int lim=j*base; lim=min(lim,N); for(k=(j-1)*base 1;k<=lim;k ){ t1=a[k]; t2= cnt[a[k]]; if(t2>sum||(t2==sum&&a[k]<pure)){ sum=cnt[a[k]]; pure=a[k]; } } block[i][j]=node(pure,sum); if(i==1){ for(k=1;k<=m;k ){ all[j][k]=cnt[k]; } } } for(j=1;j<=m;j )cnt[j]=0; } } int go_up(int x,int step){ int i; for(i=S;i>=0;i--){ if(step&(1<<i))x=p[x][i]; } return x; } void solve(int x){ //cout<<"solve:"<<x<<endl; int l,r,i,j,k; if(x==root){ l=1; r=n; } else if(id[x]<=id[root]&&id[root]<=R[x]){ //cout<<"case1"<<endl; int temp=go_up(root,dep[root]-dep[x]-1); l=R[temp] 1; r=id[temp]-1 n; } else { //cout<<"case2"<<endl; l=id[x];r=R[x]; } int bl,br,tl,tr; bl=(l-2 base)/base 1; br=r/base; tl=(bl-1)*base 1; tr=br*base; //cout<<"l:"<<l<<" r:"<<r<<endl; //cout<<"block("<<bl<<","<<br<<")"<<endl; //cout<<"work["<<l<<","<<r<<"]"<<endl; int pure,sum,t1,t2; if(bl>br){ //cout<<"fuck"<<endl; pure=0;sum=0; for(i=l;i<=r;i ){ t1= cnt[a[i]]; t2=a[i]; if(t1>sum||(t1==sum&&t2<pure)){ sum=t1;pure=t2; } } //cout<<"cnt[105]:"<<cnt[105]<<endl; for(i=l;i<=r;i )cnt[a[i]]=0; } else { pure=block[bl][br].Purity; sum=block[bl][br].sum; for(i=l;i<tl;i ){ t1= cnt[a[i]] all[br][a[i]]-all[bl-1][a[i]]; t2=a[i]; if(t1>sum||(t1==sum&&t2<pure)){ sum=t1;pure=t2; } } for(i=tr 1;i<=r;i ){ t1= cnt[a[i]] all[br][a[i]]-all[bl-1][a[i]]; t2=a[i]; if(t1>sum||(t1==sum&&t2<pure)){ sum=t1;pure=t2; } } for(i=l;i<tl;i )cnt[a[i]]=0; for(i=tr 1;i<=r;i )cnt[a[i]]=0; } PRintf("%d %d\n",pure,sum); lasta=pure; lastb=sum; } int main(){ freopen("C.in","r",stdin); freopen("C.out","w",stdout); int i,j,k; cin>>n>>m>>q>>I; S=ceil(log(n)/log(2)); for(i=1;i<n;i ){ int x,y; _read(x);_read(y); add_edge(x,y); add_edge(y,x); } dfs(1,0); /*cout<<"fa:"<<endl; for(i=1;i<=n;i ){ cout<<"i:"<<i<<" "<<p[i][0]<<" "<<p[i][1]<<endl; }*/ for(i=1;i<=n;i ){ _read(purity[i]); a[id[i]]=purity[i]; } for(i=1;i<=n;i ){ a[i n]=a[i]; } divide(); while(q--){ int op,x; _read(op);_read(x); if(I%2==0)x=(x lasta*23 lastb*233)%n 1; //cout<<"x:"<<x<<endl; if(op==1){ root=x; } else { solve(x); } } }
相關(guān)推薦:
熱門課程
機構(gòu)資訊
- 太倉java開發(fā)培訓(xùn)費用_太倉JAVA培訓(xùn)
- 昆山哪里有Java實戰(zhàn)培訓(xùn)學(xué)校_昆山JAVA培訓(xùn)
- 常熟學(xué)Java哪個好_常熟JAVA培訓(xùn)
- 蘇州Java培訓(xùn)課程哪個好_蘇州JAVA培訓(xùn)
- 昆山哪里有Java語言培訓(xùn)學(xué)院_昆山JAVA培訓(xùn)
- 昆山Java工程師培訓(xùn)機構(gòu)哪個好_昆山JAVA培訓(xùn)
- 常熟學(xué)習(xí)Java工程師哪里好_常熟JAVA培訓(xùn)
- 昆山Java編程課程價格_昆山JAVA培訓(xùn)
- 張家港Java開發(fā)培訓(xùn)班學(xué)費_張家港JAVA培訓(xùn)
- 太倉Java工程師培訓(xùn)學(xué)院哪里好_太倉JAVA培訓(xùn)