Download:Introduction to Mixed development Vue develops imitation JINGdong project App with Android/iOS
Without native development foundation, can also perfectly present Jingdong Mall. This course integrates vUE, Android, IOS and other popular front-end and mobile technologies to develop the classic e-commerce APP — JINGdong. The course perfectly integrates all kinds of complex functions and knowledge points, from the technical principle to the development of online, so that you can truly feel the whole process of a star product development. Besides function realization, there are first-class user experience and excellent interaction design for you to explore, and broaden your development horizon.
Suitable for people who want to work at a high starting point with a good offer; students who want to know iOS and Android development of Vue technology; front-end students who want to know the core principle of Hybrid App; Students who have no ideas
IL void access(int x) {// Get the path from the root node to x, x is the deepest for(R y=0; x; x=fa(y=x)) { splay(x),rs(x)=y,pushup(x); }} Make_root(x) : make x the root node
IL void makeroot(int x) {// Change x to the root of the tree access(x),splay(x),Rev(x); } Find_root(x) : finds the root node of x
IL int findroot(int x) {// Find the root of the x tree access(x),splay(x); while(ls(x)) pushdown(x),x=ls(x); return x; } Spilt(x,y) : converts the path from x to y into a real-edge path
IL void split(int x,int y) {//y makeroot(x),access(y),splay(y); } Link(x,y) : join (x,y) if x,y is not connected
IL void link(int x,int y) { makeroot(x); if(findroot(y)! =x) fa(x)=y; } Cut(x,y) : if there is a edge between x and y, delete the edge
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) : checks whether x is the root node of the splay
IL int nroot (int x) / / return 1 to clarify the x is not the root, returns 0 to clarify {x is the root return ls (fa) (x) = = x | | rs (fa) (x) = = x; } P3690 【 template 】Link Cut Tree (dynamic Tree
! [] ()! []()“` 1 #include
2 #define IL inline 3 #define R register int 4 #define ls(x) a[x].ch[0] 5 #define rs(x) a[x].ch[1] 6 #define fa(x) a[x].fa 7 8 using namespace std; 9 const int N=1e5+5,inf=0x3f3f3f3f; 10 11 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 } 19 20 int n,m; 21 struct hh { 22 int ch[2],fa,val,rev,sum; 23 } a[N]; 24 25 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)].sum^a[rs(x)].sum^a[x].val; } IL 28 int nroot (int x) / / return 1 to clarify the x is not the root, returns 0 to clarify x is the root of 29 {return ls (fa) (x) = = x | | rs (fa) (x) = = x; } 30 31 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 } 38 39 IL void pushall(int x) { 40 if(nroot(x)) pushall(fa(x)); 41 pushdown(x); 42 } 43 44 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} 51 52 IL void splay(int x) {// convert x to splay(x); 54 while(nroot(x)) { 55 int y=fa(x); 56 if(nroot(y)) rotate(chk(x)^chk(y)? x:y); 57 rotate(x); 59 58}}