啊,我也是7个TLE
by liuxy1234 @ 2022-02-22 19:54:35
改了一下,
```cpp
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct bian{
int s,e,w;
} b[100002];
int n,m;
bool flag=false;
bool vis[100002]={false};
void dfs(int now,int end,int val){
if(flag){
return;
}
if(now==end){
cout<<val<<endl;
flag=true;
return;
}
for(int i=1;i<n;i++){
if(b[i].s==now and not vis[b[i].e]){
vis[now]=true;
dfs(b[i].e,end,val^b[i].w);
vis[now]=false;
}
if(b[i].e==now and !vis[b[i].s]){
vis[now]=true;
dfs(b[i].s,end,val^b[i].w);
vis[now]=false;
}
}
}
signed main(){
ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<=n-1;i++){
cin>>b[i].s>>b[i].e>>b[i].w;
}
cin>>m;
for(int i=1;i<=m;i++){
int a,b;
cin>>a>>b;
dfs(a,b,0);
}
return 0;
}
```
现在是6个wa,4个tle
by yzkadbq_qwq @ 2022-02-22 20:00:09
flag没有重复初始化,还有别的问题。
by jaxon1226 @ 2022-02-22 20:04:27
```cpp
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct bian{
int s,e,w;
} b[100002];
int n,m;
bool flag=false;
bool vis[100002]={false};
void dfs(int now,int end,int val){
if(flag){
return;
}
if(now==end){
cout<<val<<endl;
flag=true;
return;
}
for(int i=1;i<n;i++){
if(b[i].s==now and not vis[b[i].e]){
vis[now]=true;
dfs(b[i].e,end,val^b[i].w);
vis[now]=false;
}
if(b[i].e==now and !vis[b[i].s]){
vis[now]=true;
dfs(b[i].s,end,val^b[i].w);
vis[now]=false;
}
}
}
signed main(){
ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<=n-1;i++){
cin>>b[i].s>>b[i].e>>b[i].w;
}
cin>>m;
for(int i=1;i<=m;i++){
int a,b;
cin>>a>>b;
flag=false;
dfs(a,b,0);
}
return 0;
}
```
改了,可是还是3个ac,7个tle
by yzkadbq_qwq @ 2022-02-22 20:05:43