BZOJ4245 : [ONTAK2015]OR-XOR
2015-08-19 17:35
162 查看
按位考虑,逐步确定答案。
设当前是第i位,求出第i位的前缀异或和。
若存在m个0且所有数字异或和为0,那么答案的这一位可以为0,并把所有1的位置给标记为不可选。
否则答案的这一位只能是1。
时间复杂度$O(n\log n)$。
设当前是第i位,求出第i位的前缀异或和。
若存在m个0且所有数字异或和为0,那么答案的这一位可以为0,并把所有1的位置给标记为不可选。
否则答案的这一位只能是1。
时间复杂度$O(n\log n)$。
#include<cstdio> #define N 500010 int n,m,i,j,t,b ,f ;long long a ,ans; inline void read(long long&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';} int main(){ scanf("%d%d",&n,&m); for(i=1;i<=n;i++)read(a[i]),f[i]=1; for(i=59;~i;i--){ for(t=0,j=1;j<=n;j++){ b[j]=b[j-1]^(a[j]>>i&1); if(!b[j]&&f[j])t++; } if(t>=m&&!b ){for(j=1;j<n;j++)if(b[j]&&f[j])f[j]=0;}else ans|=1LL<<i; } return printf("%lld",ans),0; }
相关文章推荐
- 图片缩放显示(UIViewContentModeScaleAspectFit) 要 从顶部开始显示的解决方法
- 2、ViewPager+Fragment的使用
- 【leetcode】Interleaving String
- expdp\impdp及exp\imp
- uva11040
- ZoneDateTime 用法摘要
- 开发自己的Openfire插件
- 计算日期到天数转换
- HDUOJ_1874(畅通工程续)(spfa)
- Javascript Garden
- 通过RTLabel、RCLabel、FTCoreText及webView结合SDWebImage等4种方式实现左滑或下拉中cell中图文混排使用场景方案
- QQ群共享文件下载很慢解决办法
- oracle导入数据库步骤--impdp
- Android内存分析工具(二):DDMS
- POJ 2503 Babelfish qsort+bserach
- matlab与.net混合编程
- leetcode:Reverse Nodes in k-Group
- 欢迎使用CSDN-markdown编辑器
- AVAudioRecorder录音处理
- umeng