[NOI2014]起床困难综合症
来源:互联网 发布:公文的阅知范围体现在 编辑:程序博客网 时间:2024/04/30 10:29
从高位往地位贪心即可
# include <bits/stdc++.h># 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;}
阅读全文
0 0
- 【NOI2014】起床困难综合症
- NOI2014起床困难综合症
- NOI2014起床困难综合症
- 【NOI2014】起床困难综合症
- 【NOI2014】起床困难综合症
- [NOI2014]起床困难综合症
- bzoj3668 [Noi2014]起床困难综合症
- BZOJ3668 [Noi2014]起床困难综合症
- BZOJ3668: [Noi2014]起床困难综合症
- [BZOJ3668][Noi2014]起床困难综合症
- 【NOI2014】【BZOJ3668】起床困难综合症
- #2. 【NOI2014】起床困难综合症
- 【NOI2014】bzoj3668 起床困难综合症
- BZOJ3668: [Noi2014]起床困难综合症
- 3668: [Noi2014]起床困难综合症
- 【JZOJ3753】【NOI2014】起床困难综合症
- 3668: [Noi2014]起床困难综合症
- 3668: [Noi2014]起床困难综合症
- Python 爬虫进公司必会项目
- 泛型的内部原理:类型擦除以及类型擦除带来的问题
- sorttable.js
- 打开Android Studio报错“Error running ***: Please select Android SDK”
- Day06 --面向对象
- [NOI2014]起床困难综合症
- 找座椅
- 浅谈重构中踩过的坑
- 在Angular-cli中使用Pug(Jade)模板
- linux下文件的创建时间、访问时间、修改时间和改变时间
- 安装macvim
- 单例7种写法
- Android内核开发:图解Android系统的启动过程
- SpringMVC基本注解的介绍