2017.9.25 Xor 失败总结
wc的题好难啊,需要比较清奇的想法
首先我以为从二进制位从大到小跑路,记录路径,层层筛选,然后只能跑标记的边、、
但这样做是错的,,因为有些路有环,需要被标记的是路径而不是边,所以会跑错
然后关于异或,需要熟练地将两边为0联想到路上重复路径,,然后及时想到对一条道路进行修改,然后需要想到修改道路需要沿原路一部分异或,另一部分断点起止新路异或
然后就可以发现环了、
然后每次修改都可以等价的找到一个环,所有的小环可以相互异或得到任何大环
然后就可以把所有环离散下来、
求最大异或子集,就要考虑线性基+贪心
线性基只知道定义概念,用法操作基本不会、板子还打错好几遍、、
码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define ll long long
ll tot,v[200005],jilu[80],er[80],ans,i,j,c,cc[200005],d[200005];
int n,m,a,b,hou[200005],xia[200005],zhong[200005],cnt;
//bool vis[50005];
void jian(int a,int b,ll c)
{++tot,hou[tot]=xia[a],xia[a]=tot,zhong[tot]=b,v[tot]=c;
}
void jia(int a,int b,ll c)
{jian(a,b,c);jian(b,a,c);
}
void dfs(int o)
{ //cout<<o;int nd,i;for(i=xia[o];i!=-1;i=hou[i])
{
nd=zhong[i];
if(!d[nd])
d[nd]=d[o]^v[i],dfs(nd);
else cc[++cnt]=d[o]^v[i]^d[nd];
}
}
int main()
{
scanf("%d%d",&n,&m);
memset(xia,-1,sizeof(xia));
er[0]=1;
for(i=1;i<=64;i++)er[i]=er[i-1]*2;for(i=1;i<=m;i++){scanf("%d%d%lld",&a,&b,&c);jia(a,b,c); } dfs(1);for(i=1;i<=cnt;i++)
{ for(j=63;j>=0;j--)if(cc[i]&er[j]){//cout<<er[j]<<endl;if(!jilu[j]){jilu[j]=cc[i];break;}else cc[i]^=jilu[j]; }
}ans=d[n];for(i=63;i>=0;i--){
ans=max(ans,ans^jilu[i]); } printf("%lld\n",ans);
}
2017.9.25 Xor 失败总结相关推荐
- 《麻省理工科技评论》:2018年18大科技趋势,2017年7大失败技术
来源:科技周 摘要:2018 年伊始,许多科技大势仍在继续,正如比尔·盖茨所说,"大多数人高估了某种技术的短期价值,低估了其长期价值."同样,大多数的年度预测会高估了一年内一些事件 ...
- pycharm 2017年5月注册码(2017.4.25更新)
注册码方式 注意,需要在hosts中添加: 0.0.0.0 account.jetbrains.com pycharm 2017 注册码(2017.4.25更新),其余注册码已失效 CNEKJPQZE ...
- 【2017.04.25】蘑菇街一面面经
面试时间:2017.4.25 18:00 面试地点:视频面试 面试时长:45分钟 面试岗位:后端开发工程师 1.自我介绍+项目介绍 2.hashmap的哈希冲突是怎样避免的 3.hashmap.ha ...
- 找不到mfc140u.dll或者Microsoft Visual C++ 2017 Redistributable一直安装失败解决
找不到mfc140u.dll 安装后提示这个问题,我将xshell卸载重新安装后发现安装过程中提示Microsoft Visual C++ 2017 Redistributable一直安装失败,所以问 ...
- 2017.10.25 书柜的尺寸 失败总结
这题只能想到第一步.. 首先题目要求的是最小化两个变量的关系,那就必须转化成一个变量的关系,化动为静 比如:枚举限制因素,枚举所有值,再或者就是贪心 一开始想到枚举限制因素,即枚举三个集合中高度最大的 ...
- 2017.9.25 随机数生成器 失败总结
.这个题要用bsgs 如果知道bsgs的话化式子就很有方向了 首先把霍纳法则拆成数列 然后得到 x1*a^n + a^n-1 *b+ a^n-2 *b+.. a*b==t (%P) 用等比数列公式, ...
- 2017.3.25 最长递增子序列 失败总结
主要被二分图匹配影响太深重了,竟没有用连续边反映问题(其实想过,只是觉得连续边没法控制长度..) 其实只要只让f[]为1的和为s的进行连边,保证出来的肯定就是s的....(没有充分利用dp) 另外这个 ...
- 2017.11.25 计算机一级,2017计算机一级MSOffice考试试题
2017计算机一级MSOffice考试试题 (16)十进制数59转换成二进制整数是 A)0110011 B)0111011 C)0111101 D)0111111 (17)根据汉字国标GB 2312- ...
- CentOS postfix 邮件服务配置问题局域网pc telnet 25端口失败
今天用CentOS搭建postfix 邮件系统,开始配置都顺利,本机测试也正常. [root@localhost ~]# telnet localhost 25 Trying 127.0.0.1... ...
最新文章
- BCH协议升级倒计时——超过68%的BCH全节点已支持升级
- 域名解析—MX和cname记录冲突
- 段错误 php,php扩展出现段错误怎么办
- Linux之ubuntu的网卡配置
- C#时常需要调用C++DLL
- oracle用中文linux,linux+oracle中文乱码
- 提高COOKIE的安全性--相关解决方案
- String.format(“0:D2}“,a)字符串格式化
- APICloud 实现文档下载和预览功能
- 计算机图标到桌面,显示桌面图标不见了怎么办?显示桌面图标不见了解决方法...
- 【学习笔记】monitor
- 【Android学习日记】
- 【解决方法】浏览器网页界面显示未连接到互联网
- 第十三课功能键之开根号——C#计算器编程教学
- 竞争网络——Hamming网络
- 经理人与元老能双赢联动吗?
- web前端开发经验总结
- 我所知道坦克大战(单机版)之Client窗口的创建、关闭、禁止调整大小
- 问答系统实践(二)构建聊天机器人小天1.0
- 高品质音乐播放器:Audirvana for Mac