题解:AT_abc396_d [ABC396D] Minimum XOR Path
思路:
这一题不是很难,我们只要按着题意模拟就行了。
首先,我们用 dfs 求出求出所有
注意
代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,ans=2e18;
bool f[15];
vector<pair<int,int> >e[15];
void dfs(int x,int sum){
if(x==n){
ans=min(ans,sum);
return;
}
for(auto[a,b]:e[x]){
if(f[a]) continue;
f[a]=1;
dfs(a,sum^b);
f[a]=0;
}
}
signed main(){
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=1;i<=m;++i){
int u,v,w;cin>>u>>v>>w;
e[u].push_back({v,w});
e[v].push_back({u,w});
}
f[1]=1;
dfs(1,0);
cout<<ans;
return 0;
}