题目:https://www.acwing.com/problem/content/230/

题意:有一个图,每条边有一个权值,现在求1-n的一条路径的最大异或和,一条边能经过多次,相应的也要计算那么多次权值

思路:首先最大异或和一看就是线性基的经典操作,然后主要是我们要如何确定这条路径,

我们首先随便计算出一条1-n路径上的最大异或和,然后再是一些环,因为一条路径异或上其他的环的话就是变成了一条新的路径

所以我们只要dfs出一条路径,然后存下所有的环,我们把这些环跑个线性基,然后就可以利用线性基的性质,如果异或当前基,会使值更大,就选,因为每个位只有一个值

1,然后说下离开始求得1-n路径上很远的环为什么也可以使用,因为我们以一点出发走过那个环再原路返回,相当于我们把去的路又异或没有了,只有环的值,现在我们只要

2,我们最开始选取的路径是否会影响最优问题,答案是不会,为什么呢,因为这条路径可以通过异或一些环来得到其他路径,所以这个不是问题

最后说下有个很坑的地方,你的记录环的个数那个数组要开很大,因为环的数量太多了

#include<bits/stdc++.h>
#define maxn 250005
#define mod 1000000007
using namespace std;
typedef long long ll;
int n,m,cnt;
bool vis[maxn];
ll d[maxn],a[maxn],ins[];
vector<pair<ll,ll> > mp[maxn];
void dfs(ll x){
vis[x]=;
for(int i=;i<mp[x].size();i++){
pair<ll,ll> q=mp[x][i];
if(!vis[q.first]){
d[q.first]=d[x]^q.second;
dfs(q.first);
}
else{
a[++cnt]=d[q.first]^d[x]^q.second;
}
}
}
void solve(){
for(int i=;i<=cnt;i++)
{
for(int j=;j>=;j--)
{
if((a[i]>>j)&)
{
if(!ins[j])
{
ins[j]=a[i];
break;
}
else
a[i]^=ins[j];
}
}
}
ll ans=d[n];
for(int i=;i>=;i--){
if((ans^ins[i])>ans) ans^=ins[i];
}
printf("%lld",ans);
}
int main(){
scanf("%d%d",&n,&m);
ll x,y;
ll z;
for(int i=;i<m;i++){
scanf("%lld%lld%lld",&x,&y,&z);
mp[x].push_back(make_pair(y,z));
mp[y].push_back(make_pair(x,z));
}
dfs();
solve();
return ;
}

最新文章

  1. DEDECMS标签调用汇总啊
  2. TypeScript - 基本类型系统
  3. css圆角边框
  4. RabbitMQ/JAVA 客户端连接测试
  5. codeforces 260 div2 C题
  6. 资源汇集:nginx教程从入门到精通
  7. Bootstrap_Javascript_图片轮播
  8. 元素水平垂直居中(transform,margin,table-cell,jQuery)
  9. UVA 322 ships (POJ 1138)
  10. AngularJS中数据双向绑定(two-way data-binding)
  11. STM32按键控制程序
  12. 性能测试培训:sql server性能测试分析局部变量的性能影响
  13. ubuntu下mysql提示Changed limits: max_open_files:1024解决办法
  14. 关于asyncio知识(二)
  15. 文件上传的UI自动化
  16. background属性解释
  17. JSON平铺功能的实现(JS操作JSON数据)
  18. 2019.01.19 bzoj4592: [Shoi2015]脑洞治疗仪(ODT)
  19. Docker-安装(CentOS7)
  20. [运维-安全]CentOS7.0环境下安装kangle和easypanel

热门文章

  1. linux 基础命令总结
  2. flutter页面布局三
  3. AcWing 244. 谜一样的牛 (树状数组+二分)打卡
  4. 7 August
  5. 31 July
  6. [NOIP2017]逛公园 题解
  7. 浅谈 STM32 硬件I2C的使用 (中断方式 无DMA 无最高优先级)(转)
  8. USACO 5.4 章节
  9. windows 虚拟内存查看
  10. luoguP1514 引水入城 题解(NOIP2010)(Bfs+贪心)