原题地址

虽说是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]起床困难综合症(位运算)』相关推荐

  1. 解题报告 『[NOI2014]起床困难综合症』

    原题地址 虽说是NOI的题目,但其实并不难,所以解析我就写在代码里了. 代码实现如下: //本题应首先将数拆为二进制. #include <bits/stdc++.h> using nam ...

  2. CH - 0104 起床困难综合症(位运算+贪心)

    题目链接:点击查看 题目大意:我们需要构造一个初始值start,范围在[0,m],要求使用这个初始值进行k次操作后得到的答案最大,每次操作分为三个类型: AND x:让当前答案与x进行按位与 OR x ...

  3. 【NOI2014】起床困难综合症 位运算+贪心

    这道题先求出0和-1经过处理后的答案 具体看代码吧 #include<cstdio> #include<cstring> #include<algorithm> u ...

  4. [NOI2014] 起床困难综合症

    水题的题解也水...... 原题链接:洛谷 P2114 [NOI2014]起床困难综合症 位运算每一位之间互不干扰. 经过所有门之后每一位不外乎四种结果:一定是0,一定是1,不变或取反. 按位枚举,贪 ...

  5. 洛谷 P2114 [NOI2014]起床困难综合症 解题报告

    P2114 [NOI2014]起床困难综合症 题目描述 21世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm一直坚持与起床困难综合症作 ...

  6. BZOJ 3668: [Noi2014]起床困难综合症( 贪心 )

    之前以为xor,or,and满足结合律...然后连样例都过不了 早上上体育课的时候突然想出来了...直接处理每一位是1,0的最后结果, 然后从高位到低位贪心就可以了... 滚去吃饭了.. ------ ...

  7. [BZOJ3668][Noi2014]起床困难综合症 贪心

    3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 2409  Solved: 1360 [Submit][ ...

  8. 洛谷P2114 [NOI2014]起床困难综合症

    P2114 [NOI2014]起床困难综合症 题目描述 21世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm一直坚持与起床困难综合症作 ...

  9. BZOJ 3668: [Noi2014]起床困难综合症【二进制+贪心】

    3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec Memory Limit: 512 MB Description 21 世纪,许多人得了一种奇怪的病:起床困难综合症 ...

最新文章

  1. Go 学习笔记(48)— Go 标准库之 time (获取时/分/秒的单位值、标准时间和Unix时间转换、字符串时间和Time类型转换、时区转换、时间的加减/休眠)
  2. WebSphere安装
  3. 一种新的url定向技术-使用@与/?
  4. mysql 用户管理表_mysql用户管理
  5. nrm : 无法加载文件 C:\Users\hc\AppData\Roaming\npm\nrm.ps1 ,因为在此系统上禁止运行脚本。
  6. 从零开始构建HTML 5 Web页面
  7. Java 添加、验证PDF 数字签名
  8. 信源编码与信道编码区别(十一)
  9. 解决微信小程序图片上传点击无反应问题
  10. 冒泡排序——《图解算法》
  11. html行内样式选择器怎么写,巧用CSS伪类选择器实现九种样式的九宫格
  12. Keil to STM32CubeIDE标准库移植
  13. 自己动手该 博客 百度给的模板不好看,有没个性
  14. CSS角度单位(deg)
  15. 增长的旋律——AARRR模式思考(二)
  16. matlab学习之旅1——钢琴音频
  17. C语言:编求阶乘函数
  18. python虚拟仿真_中国美术学院
  19. 首尔半导体WICOP双色LED被用于2020款奥迪A4前灯
  20. 打开、关闭系统软键盘(触摸屏)

热门文章

  1. linux ssh客戶端:termius介绍及安装
  2. linux KVM win虚拟机磁盘扩容(qcow2)
  3. linux snap安装redis-desktop-manager
  4. openshift介绍及centos7安装单节点openshift、Redhat安装openshift集群完全教程
  5. 【视频】vue组件之props属性
  6. IDEA中maven项目所有文件都识别不了,明明存在的类提示找不到,原来只需一键解决。。。
  7. gpib安装包 python_ioctl errorno:25在使用pythongpib的GPIB通信中
  8. Android开发中手机存储路径问题
  9. 协方差、相关系数---通俗解释
  10. matlab中如何添加注释