博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[NOI2014]起床困难综合症
阅读量:5950 次
发布时间:2019-06-19

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

从高位往地位贪心即可

# include 
# define IL inline# define RG register# define Fill(a, b) memset(a, b, sizeof(a))using namespace std;typedef long long ll;const int _(1e5 + 10);IL ll Read(){ RG char c = getchar(); RG ll x = 0, z = 1; for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1; for(; c >= '0' && c <= '9'; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48); return x * z;}int n, m, ans, t[_], op[_];int main(RG int argc, RG char* argv[]){ n = Read(); m = Read(); for(RG int i = 1; i <= n; i++){ RG char c; scanf(" %c", &c); t[i] = Read(); if(c == 'A') op[i] = 1; else if(c == 'O') op[i] = 2; else op[i] = 3; } for(RG int l = 30; l >= 0; l--){ RG int cnt1 = 1, cnt2 = 0; for(RG int i = 1; i <= n; i++){ RG int d = (t[i] >> l) & 1; if(op[i] == 1) cnt1 &= d, cnt2 &= d; else if(op[i] == 2) cnt1 |= d, cnt2 |= d; else cnt1 ^= d, cnt2 ^= d; } if(cnt2) ans += 1 << l; else if(cnt1 && m >= (1 << l)) ans += 1 << l, m -= 1 << l; } printf("%d\n", ans); return 0;}

转载于:https://www.cnblogs.com/cjoieryl/p/8206371.html

你可能感兴趣的文章
创建线程的四种方式
查看>>
大唐电信[600198]股票
查看>>
yii2 controller 接收get形式传输过来的参数
查看>>
Spring MVC控制流程与简易配置方案
查看>>
开启OpenStack Api跨域请求(CORS)功能
查看>>
拓步T66Ⅱ(牛牛2)Root教程
查看>>
redis的简单学习2.1-redis的数据类型
查看>>
《每个设计师都应该掌握的50个css代码段》11~20段
查看>>
C Primer Plus 第13章 文件输入/输出 13.11 编程练习答案
查看>>
JBoss 系列三十七:jBPM5示例之 Rule Task
查看>>
IOS9 微信支付报 prepayid 获取失败 ErrorDomainSSL, -9802
查看>>
iPhone 手机烧号的一些概念:五码烧号 vs OTA烧号
查看>>
maven模块化分解项目
查看>>
我们来判断一个php函数是否被定义
查看>>
The jQuery HTML5 Audio / Video Library
查看>>
如何监控mysql主从之间的延迟
查看>>
Android studio插件安装
查看>>
ubuntu下不同版本python默认切换
查看>>
mybatis核心数据结构详解——CacheKey
查看>>
第10课 skymvc 企业网站制作
查看>>