博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AC日记——「SCOI2016」幸运数字 LiBreOJ 2013
阅读量:4473 次
发布时间:2019-06-08

本文共 2160 字,大约阅读时间需要 7 分钟。

 

思路:

  

 

代码:

#include 
using namespace std;#define maxn 20005#define ll long longstruct DataType { ll d[61],p[61]; ll cnt; DataType() { memset(d,0,sizeof(d)); memset(p,0,sizeof(p)); cnt=0; } bool insert(long long val) { for(ll i=60;i>=0;i--) { if(val&(1LL<
0; } ll Max() { ll res=0; for(ll i=60;i>=0;i--) { if((res^d[i])>res) res^=d[i]; } return res; }};struct DataType ans;struct TreeNodeType { ll l,r,mid; DataType data;};struct TreeNodeType tree[maxn<<2];ll n,m,deep[maxn],id[maxn],size[maxn],f[maxn],head[maxn];ll E[maxn<<1],V[maxn<<1],tot,ai[maxn],bi[maxn],lar[maxn];ll top[maxn];inline void in(ll &now){ char Cget=getchar();now=0; while(Cget>'9'||Cget<'0')Cget=getchar(); while(Cget>='0'&&Cget<='9') { now=now*10+Cget-'0'; Cget=getchar(); }}void edge_add(ll u,ll v){ E[++tot]=head[u],V[tot]=v,head[u]=tot; E[++tot]=head[v],V[tot]=u,head[v]=tot;}void merge(DataType &a,DataType b){ for(ll i=0;i<=60;i++) { if(b.d[i]) a.insert(b.d[i]); }}void dfs1(ll now,ll fa){ f[now]=fa,deep[now]=deep[fa]+1,size[now]=1; for(ll i=head[now];i;i=E[i]) { if(V[i]==fa) continue; dfs1(V[i],now),size[now]+=size[V[i]]; if(size[lar[now]]
>1; build(now<<1,l,tree[now].mid),build(now<<1|1,tree[now].mid+1,r); tree[now].data=tree[now<<1].data; merge(tree[now].data,tree[now<<1|1].data);}void query(ll now,ll l,ll r){ if(tree[now].l>=l&&tree[now].r<=r) { merge(ans,tree[now].data); return; } if(l<=tree[now].mid) query(now<<1,l,r); if(r>tree[now].mid) query(now<<1|1,l,r);}ll query(ll x,ll y){ for(int i=0;i<=60;i++) ans.d[i]=0,ans.p[i]=0; ans.cnt=0; while(top[x]!=top[y]) { if(deep[top[x]]
deep[y]) swap(x,y); query(1,id[x],id[y]); return ans.Max();}int main(){ freopen("data.txt","r",stdin); in(n),in(m);ll u,v; for(ll i=1;i<=n;i++) in(ai[i]); for(ll i=1;i

 

转载于:https://www.cnblogs.com/IUUUUUUUskyyy/p/7072732.html

你可能感兴趣的文章
c mysql 时间段查询_mySql 时间段查询
查看>>
mysql sql乱码怎么解决_MYSQL数据库导入SQL文件出现乱码如何解决
查看>>
mysql的存储过程与事务_mysql的存储过程与事务入门
查看>>
java程序员闯关题网站_Java程序员每周必逛的十大学习网站
查看>>
python面试装饰器_Python测开面试题之装饰器
查看>>
flashcache mysql_flashcache的实现与分析
查看>>
linux shell 里面执行python 程序_Linux下编写脚本Shell和Python的区别?
查看>>
python中if elif语句优化_python – 最有效的方式做一个if-elif-elif-else语句当else做的最多?...
查看>>
win10 配置 maven_home 一会儿成功一会儿失败_在macbook上运行移动硬盘里的win10和macos...
查看>>
python怎么画多重饼状图_Python通过matplotlib画双层饼图及环形图简单示例
查看>>
棋盘最短路径 python_Dijkstra 最短路径算法 Python 实现
查看>>
eclipse配置mysql教程_在Eclipse连接mysql-----配置jbdc_MySQL
查看>>
java map合并_java 实现合并map示例Demo1
查看>>
java 8 string_String.join() --Java8中String类新增方法
查看>>
java 布局教程_java布局学习(新)
查看>>
Random Access Iterator
查看>>
Harry And Dig Machine
查看>>
Cake Robbery
查看>>
Magician
查看>>
GT and set
查看>>