大數據開發工程師

download:大數據開發工程師

本套大數據課程中的技術體系包含目前主流的Hadoop、Spark、Flink三大技術生態圈,涵蓋了企業中最多見的技術組件,能夠知足你們在公司中的工做需求html

Q:這套課程要學多久?學完能達到什麼水平呢?
本套大數據學完的時間,和每一個人的基礎、接受能力和時間安排都有關,通常狀況下,若是能保證天天聽課1小時,練習至少2個小時,3~4個月是能夠學完的。建議保持連續學習,這樣學習效果更好,以及經過視頻配套的思惟導圖作好預習,電子書鞏固視頻內容。學完後能夠達到大數據中級工程師水平,知足絕大部分公司的大數據崗位需求。java

Q:這套大數據課程中學的東西工做中夠用嗎?
足夠用的,目前本套大數據課程中的技術體系包含目前主流的Hadoop、Spark、Flink三大技術生態圈,涵蓋了企業中最多見的技術組件,能夠知足你們在公司中的工做需求。c++

Q:我目前是java程序員,大數據屬於零基礎,能學的會嗎?
能夠的,java程序員學習大數據是具備自然優點的,大數據中的技術框架大部分都是基於java開發的,學習起來很容易上手。 而且咱們本套課程配套的有完整的電子書,方便你們及時查漏補缺,以及本套視頻教程帶有配套字幕,學起來也會更加輕鬆。
IL void access(int x) {//打通從根節點到x的途徑,x最深
for(R y=0; x; x=fa(y=x)) {
splay(x),rs(x)=y,pushup(x);
}
}
Make_root(x):將x變成根節點程序員

IL void makeroot(int x) {//把x變爲原樹的根
access(x),splay(x),Rev(x);
}
Find_root(x):找到x所在的根節點框架

IL int findroot(int x) {//找到x的原樹的根
access(x),splay(x);
while(ls(x)) pushdown(x),x=ls(x);
return x;
}
Spilt(x,y):將x到y的途徑變成實邊途徑ide

IL void split(int x,int y) {//y維護x-y途徑上的信息
makeroot(x),access(y),splay(y);
}
Link(x,y):若x,y不連通,則參加(x,y)這條邊oop

IL void link(int x,int y) {
makeroot(x);if(findroot(y)!=x) fa(x)=y;
}
Cut(x,y):若x,y之間有邊,則刪掉該邊學習

IL void cut(int x,int y) {
split(x,y);
if(fa(x)==y&&rs(x)==0) fa(x)=ls(y)=0,pushup(y);
}
Isroot(x):判別x可否是所在splay的根節點大數據

IL int nroot(int x) //返回1闡明x不是根,返回0闡明x是根
{return ls(fa(x))==x||rs(fa(x))==x;}
P3690 【模板】Link Cut Tree (動態樹)
萌新寫代碼~碼風跟喻隊學的spa

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-BOtyn2Wj-1616093171049)()]```1 #include<bits/stdc++.h>2 #define IL inline3 #define R register int4 #define ls(x) a[x].ch[0]5 #define rs(x) a[x].ch[1]6 #define fa(x) a[x].fa78 using namespace std;9 const int N=1e5+5,inf=0x3f3f3f3f;1011 IL int read() {12 int f=1;13 char ch;14 while((ch=getchar())<‘0’||ch>‘9’) if(ch==’-’) f=-1;15 int res=ch-‘0’;16 while((ch=getchar())>=‘0’&&ch<=‘9’) res=res10+ch-‘0’;17 return resf;18 }1920 int n,m;21 struct hh {22 int ch[2],fa,val,rev,sum;23 } a[N];2425 IL int chk(int x) {return x==rs(fa(x));}26 IL void Rev(int x) {swap(ls(x),rs(x));a[x].rev^=1;}27 IL void pushup(int x) {a[x].sum=a[ls(x)].suma[rs(x)].suma[x].val;}28 IL int nroot(int x) //返回1闡明x不是根,返回0闡明x是根29 {return ls(fa(x))==x||rs(fa(x))==x;}3031 IL void pushdown(int x) {32 if(a[x].rev) {33 a[x].rev=0;34 if(ls(x)) Rev(ls(x));35 if(rs(x)) Rev(rs(x));36 }37 }3839 IL void pushall(int x) {40 if(nroot(x)) pushall(fa(x));41 pushdown(x);42 }4344 IL void rotate(int x) {45 int y=fa(x),z=fa(y),k=chk(x),w=a[x].ch[k^1];46 if(nroot(y)) a[z].ch[chk(y)]=x;fa(x)=z;47 if(w) fa(w)=y;a[y].ch[k]=w;48 fa(y)=x;a[x].ch[k^1]=y;49 pushup(y);pushup(x);50 }5152 IL void splay(int x) {//把x轉到splay的根53 pushall(x);54 while(nroot(x)) {55 int y=fa(x);56 if(nroot(y)) rotate(chk(x)^chk(y)?x:y);57 rotate(x);58 }59 }6061 IL void access(int x) {//打通從根節點到x的途徑,x最深62 for(R y=0; x; x=fa(y=x)) {63 splay(x),rs(x)=y,pushup(x);64 }65 }6667 IL void makeroot(int x) {//把x變爲原樹的根68 access(x),splay(x),Rev(x);69 }7071 IL int findroot(int x) {//找到x的原樹的根72 access(x),splay(x);73 while(ls(x)) pushdown(x),x=ls(x);74 return x;75 }7677 IL void split(int x,int y) {//y維護x-y途徑上的信息78 makeroot(x),access(y),splay(y);79 }8081 IL void link(int x,int y) {82 makeroot(x);if(findroot(y)!=x) fa(x)=y;83 }8485 IL void cut(int x,int y) {86 split(x,y);87 if(fa(x)y&&rs(x)0) fa(x)=ls(y)=0,pushup(y);88 }8990 int main() {91 n=read();92 m=read();93 for(R i=1; i<=n; ++i) a[i].val=a[i].sum=read();94 while(m–) {95 int op=read(),x=read(),y=read();96 if(!op) split(x,y),printf("%d\n",a[y].sum);97 else if(op1) link(x,y);98 else if(op2) cut(x,y);99 else makeroot(x),a[x].val=y,pushup(x);100 }101 return 0;102 }

相關文章
相關標籤/搜索