解题报告 『[NOI2014]起床困难综合症』
原题地址
虽说是NOI的题目,但其实并不难,所以解析我就写在代码里了。
代码实现如下:
//本题应首先将数拆为二进制. #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (register int i = (a); i <= (b); i++) #define per(i, a, b) for (register int i = (a); i >= (b); i--)int n, m, x, a1 = 0, a2 = -1, ans = 0;//a1表示000...0,a2表示111...1,所以用int或unsigned int都行. char opt[5];int read() {int x = 0, flag = 0;char ch = ' ';while (ch != '-' && (ch < '0' || ch > '9')) ch = getchar();if (ch == '-') {flag = 1;ch = getchar();}while (ch >= '0' && ch <= '9') {x = (x << 1) + (x << 3) + ch - '0';ch = getchar();}return flag ? -x : x; }void write(int x) {if (x < 0) {putchar('-');x = -x;}if (x > 9) write(x / 10);putchar(x % 10 + '0'); }int main() {n = read(), m = read();rep(i, 1, n) {scanf("%s", opt), x = read();if (opt[0] == 'A') {a1 &= x;a2 &= x;}if (opt[0] == 'O') {a1 |= x;a2 |= x;}if (opt[0] == 'X') {a1 ^= x;a2 ^= x;}}per(i, 31, 0) {if (a1 >> i & 1) ans += 1 << i;//能将0变为1,何乐而不为? else if (a2 >> i & 1 && (1 << i) <= m) {//注意这里用的是else if. ans += 1 << i;m -= 1 << i;}//能将1变为1,就变,反正也没损失. }write(ans);return 0; }
View Code
转载于:https://www.cnblogs.com/Kirisame-Marisa/p/11172179.html
解题报告 『[NOI2014]起床困难综合症』相关推荐
- 解题报告 『[NOI2014]起床困难综合症(位运算)』
原题地址 虽说是NOI的题目,但其实并不难,所以解析我就写在代码里了. 代码实现如下: //本题应首先将数拆为二进制. #include <bits/stdc++.h> using nam ...
- 洛谷 P2114 [NOI2014]起床困难综合症 解题报告
P2114 [NOI2014]起床困难综合症 题目描述 21世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm一直坚持与起床困难综合症作 ...
- BZOJ 3668: [Noi2014]起床困难综合症( 贪心 )
之前以为xor,or,and满足结合律...然后连样例都过不了 早上上体育课的时候突然想出来了...直接处理每一位是1,0的最后结果, 然后从高位到低位贪心就可以了... 滚去吃饭了.. ------ ...
- [BZOJ3668][Noi2014]起床困难综合症 贪心
3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 2409 Solved: 1360 [Submit][ ...
- [NOI2014] 起床困难综合症
水题的题解也水...... 原题链接:洛谷 P2114 [NOI2014]起床困难综合症 位运算每一位之间互不干扰. 经过所有门之后每一位不外乎四种结果:一定是0,一定是1,不变或取反. 按位枚举,贪 ...
- 洛谷P2114 [NOI2014]起床困难综合症
P2114 [NOI2014]起床困难综合症 题目描述 21世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm一直坚持与起床困难综合症作 ...
- BZOJ 3668: [Noi2014]起床困难综合症【二进制+贪心】
3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec Memory Limit: 512 MB Description 21 世纪,许多人得了一种奇怪的病:起床困难综合症 ...
- bzoj3668 [Noi2014]起床困难综合症
3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 2547 Solved: 1460 [Submit][ ...
- 【题解】洛谷P2114 [NOI2014]起床困难综合症
前往:我自己搭建的博客 题目 洛谷P2114 [NOI2014]起床困难综合症 题解 题意简化为:在0~m之间找一个数,使得这个数在一系列操作后最大. 由于原数有大小限制,又要使得到的数尽量大,为了充 ...
最新文章
- JAVA线程池的分析和使用--笔记
- LeetCode 636. 函数的独占时间(栈)
- 【java】阿里为什么推荐使用LongAdder,而不是volatile?
- 基于JAVA+SpringMVC+Mybatis+MYSQL的洗衣店服务平台管理系统
- 弹窗编辑jsp报表内数据
- 记赖世雄英语笔记和心得
- java事务 深入Java事务的原理与应用
- excel工作簿合并为一个表格
- 使用 乐吾乐topology 遇到的问题解决方法汇总
- While(true)无限循环
- 8个深度学习/计算机视觉错误,应该如何避免它们
- Pandoc 安装与使用
- 数据可视化编辑平台上线,小程序也能拥有可视化图层
- 求矩阵中非零元素个数(L0范式)
- OpenGL: 圆柱面绘制贴图
- ubuntu中pycharm没有启动图标
- 2021最新Java面试笔试题目分享
- java dispo lock_Java Row.getAs方法代码示例
- 壳网七彩视界开源对接易支付原生播放器可投屏可选集
- 秋招历险记-深度学习
热门文章
- 微信自动回复和自动抢红包实现原理(三):自动抢红包
- 利用cache特性检测Android模拟器
- 区块链基础知识系列 第四课Hyperledger fabric 1.0网络组成及构建流程
- mysql my.cnf参数配置_MySQLmy.cnf参数配置优化详解
- pythonlbp纹理提取_Python + OpenCV 实现LBP特征提取的示例代码
- 怎么算 实体识别_大篷车流动摆摊卖日用品月赚万元,大商场生意冷清,实体店不好做...
- java获取当前项目相对路径,在JAVA文件中获取该项目的相对路径
- 你想带一顶什么样的硕士帽(转载)
- [CODEVS 1281] Xn数列
- JZOJ__Day 6:【普及模拟】神奇的项链(fett)