博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 3611: [Heoi2014]大工程
阅读量:5131 次
发布时间:2019-06-13

本文共 1564 字,大约阅读时间需要 5 分钟。

虚树,跪,貌似搞出虚树之后的DP挺好想的,然而蒟蒻还是虚的扒了题解,,

1 #include 
2 #define LL long long 3 #define inf 0x3f3f3f3f 4 using namespace std; 5 inline int ra() 6 { 7 int x=0,f=1; char ch=getchar(); 8 while (ch<'0' || ch>'9') {
if (ch=='-') f=-1; ch=getchar();} 9 while (ch>='0' && ch<='9') {x=x*10+ch-'0'; ch=getchar();} 10 return x*f; 11 } 12 LL tot; 13 int bin[20]; 14 int n,K,top,cnt,q,ind,ans1,ans2; 15 int head[1000005],rehead[1000005],v[1000005]; 16 int mx[1000005],mn[1000005]; 17 int fa[1000005][20],deep[1000005],dfn[1000005],st[1000005],h[1000005]; 18 LL size[1000005],f[1000005]; 19 struct edge{ 20 int to,next,v; 21 }e[2000005],re[2000005]; 22 void insert2(int x, int y) 23 { 24 if (x==y) return; 25 re[++cnt].next=rehead[x]; re[cnt].to=y; rehead[x]=cnt; re[cnt].v=deep[y]-deep[x]; 26 } 27 void insert(int x, int y){e[++cnt].next=head[x]; e[cnt].to=y; head[x]=cnt;} 28 void pre_dfs(int x) 29 { 30 dfn[x]=++ind; 31 for (int i=1; bin[i]<=deep[x]; i++) 32 fa[x][i]=fa[fa[x][i-1]][i-1]; 33 for (int i=head[x];i;i=e[i].next) 34 { 35 if (e[i].to==fa[x][0]) continue; 36 deep[e[i].to]=deep[x]+1; 37 fa[e[i].to][0]=x; 38 size[x]+=size[e[i].to]; 39 pre_dfs(e[i].to); 40 } 41 } 42 int lca(int x, int y) 43 { 44 if (deep[x]
=0; i--) 49 if (fa[x][i]!=fa[y][i]) 50 x=fa[x][i],y=fa[y][i]; 51 return x==y?x:fa[x][0]; 52 } 53 bool cmp(int a, int b){
return dfn[a]

 

转载于:https://www.cnblogs.com/ccd2333/p/6511976.html

你可能感兴趣的文章
Java异常抛出
查看>>
[SQL Server 系] T-SQL数据库的创建与修改
查看>>
74HC164应用
查看>>
变量声明和定义的关系
查看>>
Wpf 之Canvas介绍
查看>>
linux history
查看>>
jQuery on(),live(),trigger()
查看>>
Python2.7 urlparse
查看>>
sencha touch在华为emotion ui 2.0自带浏览器中圆角溢出的bug
查看>>
【架构】Linux的架构(architecture)
查看>>
ASM 图解
查看>>
Date Picker控件:
查看>>
你的第一个Django程序
查看>>
grafana授权公司内部邮箱登录 ldap配置
查看>>
treegrid.bootstrap使用说明
查看>>
[Docker]Docker拉取,上传镜像到Harbor仓库
查看>>
javascript 浏览器类型检测
查看>>
nginx 不带www到www域名的重定向
查看>>
记录:Android中StackOverflow的问题
查看>>
导航,头部,CSS基础
查看>>