当前位置: 首页 > news >正文

龙华做棋牌网站建设哪家公司便宜免费ppt成品网站

龙华做棋牌网站建设哪家公司便宜,免费ppt成品网站,微信网站方案,商城网站做推广有什么好处题目大意 有一段长度为nnn的密文,密文的每一位都可以用一个非负整数来描述,并且每一位都有一个权值aia_iai​。你可以操作任意多次,每次操作可以选择任意一段密文,花费选择的所有位上权值的异或和的代价获得这段密文每一位的异或…

题目大意

有一段长度为nnn的密文,密文的每一位都可以用一个非负整数来描述,并且每一位都有一个权值aia_iai。你可以操作任意多次,每次操作可以选择任意一段密文,花费选择的所有位上权值的异或和的代价获得这段密文每一位的异或和。求至少需要花费多少代价才能将密文的每一位都破解出来。

数据范围

1≤n≤105,0≤ai≤1091\leq n\leq 10^5,0\leq a_i\leq 10^91n105,0ai109


题解

令前iii个未知数的异或和为xix_ixi,那么询问[l,r][l,r][l,r]就是询问xr⊕xl−1x_r\oplus x_{l-1}xrxl1的值。而知道每一个数的值等同于知道每个xix_ixi的值。

一开始,我们只知道x0x_0x0的值。对于一次询问[l,r][l,r][l,r],如果在询问之前我们已经知道xl−1x_{l-1}xl1的值或xrx_rxr的值,那么询问之后我们就能知道它们两个的值分别为多少。

将每个xix_ixi看作点iii,将询问[l,r][l,r][l,r]看作点l−1l-1l1向点rrr连一条边,那么题目就转化为求让000nnn的所有点连通的最小代价,即求最小生成树。

令前iiiaaa值的异或和为sis_isi,那么点iii到点jjj的边的边权为si⊕sjs_i\oplus s_jsisj。考虑如何求最小生成树。

我们可以把所有sis_isi放在字典树上。对于字典树上的每一个节点,它有两棵子树。只需要从两棵子树中各选一个点,使它们的异或和最小,再把它们连起来,即可将这两部分中的点连通。

那怎么选点呢?我们可以暴力枚举其中一棵子树中的数,然后在另一棵子树上贪心去找与其异或和最小的数,对所有数求最小值即可。

因为每个节点只会被其每个父亲枚举一次,所以这样做的时间复杂度为O(nlog⁡2w)O(n\log^2 w)O(nlog2w),其中wwwaia_iai的最大值。

code

#include<bits/stdc++.h>
using namespace std;
const int N=30;
int n,tot=1,tmp,a[100005],s[100005],ch[5000005][2];
vector<int>v[5000005];
long long ans=0;
void pt(int s){int q=1;for(int i=N;i>=0;i--){if(!ch[q][(s>>i)&1]) ch[q][(s>>i)&1]=++tot;q=ch[q][(s>>i)&1];v[q].push_back(s);}
}
int find(int u,int s,int now){int re=0,vq;for(int i=now-1;i>=0;i--){int vq=(s>>i)&1;if(!ch[u][vq]){re|=(1<<i);vq^=1;}u=ch[u][vq];}return re;
}
void gt(int u,int now){--now;if(ch[u][0]) gt(ch[u][0],now);if(ch[u][1]) gt(ch[u][1],now);if(ch[u][0]&&ch[u][1]){tmp=1<<N;for(int i=0;i<v[ch[u][0]].size();i++){tmp=min(tmp,find(ch[u][1],v[ch[u][0]][i],now));}ans+=tmp+(1ll<<now);}
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);s[i]=s[i-1]^a[i];}for(int i=0;i<=n;i++) pt(s[i]);gt(1,N+1);printf("%lld",ans);return 0;
}
http://www.15wanjia.com/news/175433.html

相关文章:

  • 合肥仿站定制模板建站电商网名
  • 天津网站建设培训班电影网站开发PPT模板
  • 网站模板如何编辑软件网站怎么做排行榜
  • 晋州做网站河南app定制
  • 如何查看网站是否被降权长沙营销型网站建设费用
  • asp做的是系统还是网站电子商务平台有哪些主要功能
  • 竹子建站怎么赚钱福建高速公路建设指挥部网站
  • 美食类网站开发需求分析适合小型网络公司的建站方式可以为
  • 做的烂的大网站徐州网站建设青州陈酿
  • 办公用品网站建设策划书免费制作动画的app
  • 佛山市建设企业网站服务机构wordpress 内核月报
  • 摄影网站在线建设沈阳搜索排名公司
  • 临沂哪里做网站外贸英文网站制作
  • 应聘的做网站推广的有免费查企业的软件吗
  • 怎么看一个网站是否被k企业网站建设需求书
  • 一个综合网站上线多少钱做网站收款支付宝接口
  • discuz品牌空间网站设计官网首页需要多久
  • 企业搭建pc端网站龙岗网站建设费用
  • 国外做的不错的网站机器人少儿编程加盟
  • 建设标准 免费下载网站网站一般采用的设计方案
  • 购物网站的设计思路丽水企业网站开发企业
  • 普通的订阅号怎么做微网站百度认证平台官网
  • 大连公司做网站简约大气的ppt模板免费下载
  • c网站开发视频申请品牌注册商标流程
  • 公司宣传网站建设网站开发问题
  • 做家教中介 不建网站怎么做搜索引擎优化的特点
  • 做盗版小说网站犯法吗网站建设开发方式
  • 冠县网站建设都江堰城乡建设局网站
  • iis网站连接数据库失败新网站建设市场
  • 网站做数据分析wordpress局部刷新