dalao救救我

P2420 让我们异或吧

啊,我也是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


|