萌新刚学淀粉汁,求助

P3806 【模板】点分治 1

打错了:理论上后来每一次
by 寒冰大大 @ 2020-01-14 10:27:47


...
by Rogers_wang @ 2020-01-14 10:28:50


阿了 ```cpp #include<iostream> #include<cmath> #include<cstdio> #include<cstring> #include<queue> #include<stack> #include<vector> #include<set> #include<map> #include<algorithm> using namespace std; struct edge{ int next,to,dis; }e[20020]; int head[20020],size,tmp[10001000],judge[10001000]; int k,n,m; int sz[20020],rt=1; int maxp[20020],fw[20020],dis[20020]; int que[200200]; int yns[200200],sum; int q[200200],vis[200200]; inline void addedge(int next,int to,int dis) { e[++size].to=to; e[size].next=head[next]; e[size].dis=dis; head[next]=size; } inline void getzx(int t,int fat) { sz[t]=1; maxp[t]=0; int i,j; for(i=head[t];i;i=e[i].next) { j=e[i].to; if(j==fat||vis[j]) continue; // fw[j]=1; //就是这个地方,理论上后来被一次求重心在根节点就会被continue getzx(j,t); sz[t]+=sz[j]; maxp[t]=max(maxp[t],sz[j]); } maxp[t]=max(maxp[t],sum-sz[t]); if(maxp[t]<maxp[rt]) rt=t; return ; } inline void getdis(int t,int fat) { tmp[++tmp[0]]=dis[t]; int i,j,k; for(i=head[t];i;i=e[i].next) { j=e[i].to; k=e[i].dis; if(j==fat||vis[j]) continue; dis[j]=dis[t]+k; getdis(j,t); } } inline void calc(int t) { int p=0; int i,j,k,l; for(i=head[t];i;i=e[i].next) { j=e[i].to; if(vis[j]) continue; tmp[0]=0; dis[j]=e[i].dis; getdis(j,t); for(k=tmp[0];k;k--) for(l=1;l<=m;l++) if(que[l]>=tmp[k]) yns[l]|=judge[que[l]-tmp[k]]; for(k=tmp[0];k;k--) q[++p]=tmp[k],judge[tmp[k]]=1; } for(i=1;i<=p;i++) judge[q[i]]=0; } inline void slove(int t) { vis[t]=judge[0]=1;calc(t); int i,j; for(i=head[t];i;i=e[i].next) { j=e[i].to; if(vis[j]) continue; rt=0,sum=sz[j],maxp[rt]=0x3f3f3f3f; getzx(j,0); slove(rt); } } int main() { ios::sync_with_stdio(false); register int i,j; cin>>n>>m; int t1,t2,t3; maxp[rt]=sum=n; for(i=1;i<n;i++) cin>>t1>>t2>>t3,addedge(t1,t2,t3),addedge(t2,t1,t3); for(i=1;i<=m;i++) cin>>que[i]; getzx(1,0); slove(rt); for(i=1;i<=m;i++) { if(yns[i]) cout<<"AYE"<<endl; else cout<<"NAY"<<endl; } return 0; } ```
by lemir3 @ 2020-01-14 10:39:10


%%%%%%%%
by 小元勋 @ 2020-01-14 10:44:38


4178
by installb @ 2020-01-14 10:45:57


Orz (~~wowowow~~)
by starseven @ 2020-01-14 11:09:52


Orz淀粉质巨捞
by 辰星凌 @ 2020-01-14 11:38:10


什么意思啊,还没有我后面打的正解快
by 寒冰大大 @ 2020-01-14 16:02:45


|