摘要: 【splay】 〖模板代码〗 1 void rotate(int x,int& k) 2 { 3 int y=fa[x],z=fa[y],l,r; 4 l=(tr[y][1]==x);r=l^1; 5 if(y==k)k=x; 6 else tr[z][tr[z][1]==y]=x; 7 fa[x] 阅读全文
posted @ 2018-04-20 19:45 Zsnuo 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 【点分治】 〖模板代码〗 1 void getroot(int x,int fa) 2 { 3 sz[x]=1;mx[x]=0; 4 for(int i=first[x];i;i=e[i].next) 5 { 6 int to=e[i].to; 7 if(to==fa||vis[to])contin 阅读全文
posted @ 2018-04-20 19:15 Zsnuo 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 【最近公共祖先】 〖模板代码〗 [倍增算法] 1 void dfs(int k) 2 { 3 for(int i=1;(1<<i)<=deep[k];i++) 4 x[k][i]=x[x[k][i-1]][i-1]; 5 for(int i=head[k];i;i=e[i].next) 6 { 7 阅读全文
posted @ 2018-04-20 06:58 Zsnuo 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 【插头dp】 〖相关资料〗 《基于连通性状态压缩的动态规划问题》 《插头DP——从不会到崩溃》 〖相关题目〗 1.【Ural1519】Formula 1 题意:给一个n×m的棋盘,其中'.'是空白,'*'是障碍,求经过所有点的哈密顿回路的数目。 分析:见资料 1 #include<cstdio> 2 阅读全文
posted @ 2018-04-20 06:51 Zsnuo 阅读(180) 评论(0) 推荐(0) 编辑