LuoGu P2420 让我们异或吧

其实......这就是个SB题,本来看到这个题,和树上路径有关

于是——我就欣喜地打了一个树剖上去,结果嘞,异或两遍等于没异或

所以这题和LCA屁关系都没有,所以这题就是个树上DFS!!!!

所以它为啥是绿的?不知道.....某谷地评分就是不能信

于是就A了呗

#include <iostream>
#include <cstdlib>
#include <cstdio> const int N=1e5+5; struct edge{
int to,next,data;
}e[(N<<1)]; int n,tot,head[N];
int Xor[N],m; inline void build(int u,int v,int w){
e[++tot].next=head[u];e[tot].to=v;
head[u]=tot;e[tot].data=w;return ;
} inline void dfs(int cur,int anc){
for(int i=head[cur];i;i=e[i].next){
register int k=e[i].to;
if(k==anc) continue;
Xor[k]=Xor[cur]^e[i].data;
dfs(k,cur);
}
return ;
} int main(){
scanf("%d",&n);
for(int i=1;i<n;++i){
register int u,v,w;
scanf("%d%d%d",&u,&v,&w);
build(u,v,w);build(v,u,w);
}
dfs(1,0);
scanf("%d",&m);
while(m--){
register int u,v;
scanf("%d%d",&u,&v);
printf("%d\n",Xor[u]^Xor[v]);
}
return 0;
}
上一篇:邮件应用Acompli和日历应用Sunrise(传微软曾考虑以80亿美元收购企业通讯公司Slack)


下一篇:C#中分割字符串输出字符数组