博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ4245 : [ONTAK2015]OR-XOR
阅读量:6500 次
发布时间:2019-06-24

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

按位考虑,逐步确定答案。

设当前是第i位,求出第i位的前缀异或和。

若存在m个0且所有数字异或和为0,那么答案的这一位可以为0,并把所有1的位置给标记为不可选。

否则答案的这一位只能是1。

时间复杂度$O(n\log n)$。

 

#include
#define N 500010int n,m,i,j,t,b[N],f[N];long long a[N],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[n]){for(j=1;j

  

转载地址:http://odvyo.baihongyu.com/

你可能感兴趣的文章
Tengine-2.1.1 ngx_http_concat_module 400问题
查看>>
Windows中挂载安装ISO文件
查看>>
Wayland 1.0发布
查看>>
golang的goroutine是如何实现的?
查看>>
乐视云基于Kubernetes的PaaS平台建设
查看>>
R 学习笔记《十》 R语言初学者指南--图形工具
查看>>
PHP通过读取DOM抓取信息
查看>>
DICOM医学图像处理:DICOM网络传输
查看>>
nio和传统Io的区别
查看>>
移动端网页布局中需要注意事项以及解决方法总结
查看>>
(原创)Linux下查看系统版本号信息的方法
查看>>
oracle
查看>>
redis使用过程中主机内核层面的一些优化
查看>>
我也要谈谈大型网站架构之系列(2)——纵观历史演变(下)
查看>>
大话设计模式(Golang) 二、策略模式
查看>>
使用PostgreSQL 9.6 架设mediawiki服务器
查看>>
数据库服务器硬件对性能的影响
查看>>
LVM
查看>>
windows+群辉服务器环境下,搭建git版本管理
查看>>
Boolean类型
查看>>