xiuzhiyuan @ 2022-09-25 13:50:21
求助:这段代码一直输出0
哪位大神能帮忙看看?
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
typedef pair<int,int> PII;
const int N=300005,M=600005,T=20;
int n,m;
int to[M],ne[M],h[N],idx=1;
int w[N],ans[N];
queue<int> que;
bool vis[N];
int depth[N],f[N][T];
vector<PII> op1[N<<1],op2[N<<1];
int d1[N<<1],d2[N<<1];
inline void add(int a,int b){
to[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
inline void setst(){
vis[1]=1;
depth[1]=1;
que.push(1);
while(que.size()){
int x=que.front();
que.pop();
for(int i=h[x];i;i=ne[i])
if(!vis[to[i]]){
vis[to[i]]=1;
depth[to[i]]=depth[x]+1;
f[to[i]][0]=x;
for(int i=1;i<T;i++)
f[to[i]][i]=f[f[to[i]][i-1]][i-1];
que.push(to[i]);
}
}
}
inline int lca(int a,int b){
if(depth[a]<depth[b])
swap(a,b);
for(int i=T-1;~i;i--)
if(depth[f[a][i]]>=depth[b])
a=f[a][i];
if(a==b)
return a;
for(int i=T-1;~i;i--)
if(f[a][i]!=f[b][i]){
a=f[a][i];
b=f[b][i];
}
return f[a][0];
}
inline void update(int s,int t){ //在差分里加操作
int p=lca(s,t);
op1[s].push_back({depth[s],1});
op1[f[p][0]].push_back({depth[s],-1});
op2[t].push_back({depth[s]-(depth[p]<<1)+n,1});
op2[p].push_back({depth[s]-(depth[p]<<1)+n,-1});
}
void dfs(int x,int from){
int v1=w[x]+depth[x],v2=w[x]-depth[x]+n;
int res1=d1[v1],res2=d2[v2];
for(int i=h[x];i;i=ne[i])
if(to[i]!=from)
dfs(to[i],x);
for(int i=0;i<op1[x].size();i++)
d1[op1[x][i].first]+=op1[x][i].second;
for(int i=0;i<op2[x].size();i++)
d2[op2[x][i].first]+=op2[x][i].second;
ans[x]=d1[v1]-res1+d2[v2]-res2;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<n;i++){
int a,b;
scanf("%d%d",&a,&b);
add(a,b);
add(b,a);
}
for(int i=1;i<=n;i++)
scanf("%d",&w[i]);
setst();
for(int i=0;i<m;i++){
int s,t;
scanf("%d%d",&s,&t);
}
dfs(1,0);
for(int i=1;i<=n;i++)
printf("%d ",ans[i]);
return 0;
}
by Donner @ 2022-11-26 13:56:31
@ACWING_xiuzhiyuan 是用DEV-C++吗?
看一下Complier
是个好东西
据我看Complier里面显示有13个错误
分别在 25,30,32,53 2个,54 2个,55 2个,56 2个。
剩下两个的Message:
1.In function 'void setst()'
2.In function 'void update(int,int)'
本人是个小6蒟蒻,所以判断的不是特别清楚。
最好找其他dalao们求助
by xiuzhiyuan @ 2022-11-28 12:23:29
@LUSIYUAN_GASTER 感谢