水题的题解也水......

原题链接:洛谷 P2114 [NOI2014]起床困难综合症

位运算每一位之间互不干扰。

经过所有门之后每一位不外乎四种结果:一定是0,一定是1,不变或取反。

按位枚举,贪心即可。

对于不变的,我们在限制之内尽可能选更多的1。

其余三种都选0。

代码略显繁杂。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5
 6 int n,m;
 7 int op[100005];
 8 int b[100005];
 9 int res[35];
10 int fin[35];
11 int ans;
12
13 int main()
14 {
15     scanf("%d%d",&n,&m);
16     char tp[10];
17     for(int i=1;i<=n;i++)
18     {
19         scanf("%s",tp+1);
20         scanf("%d",&b[i]);
21         if(tp[1]=='A')op[i]=1;
22         if(tp[1]=='O')op[i]=2;
23         if(tp[1]=='X')op[i]=3;
24     }
25     for(int i=0;i<=30;i++)
26     {
27         for(int j=n;j;j--)
28         {
29             int nw=((b[j]>>i)&1);
30             if(op[j]==1)
31             {
32                 if(nw==0){res[i]+=2;break;}
33                 if(nw==1)continue;
34             }
35             if(op[j]==2)
36             {
37                 if(nw==0)continue;
38                 if(nw==1){res[i]=res[i]?2:3;break;}
39             }
40             if(op[j]==3)
41             {
42                 if(nw==0)continue;
43                 if(nw==1)res[i]=(res[i]^1);
44             }
45         }
46     }
47     int fl=0;
48     for(int i=30;i>=0;i--)
49     {
50         int gl=((m>>i)&1);
51         int nw=(res[i]==0);
52         if(fl)fin[i]=nw;
53         if(gl==1&&nw==1)fin[i]=1;
54         if(gl==1&&nw==0)fl=1;
55     }
56     for(int i=0;i<=30;i++)
57     {
58         if(fin[i])ans=ans|(1<<i);
59         if(res[i]%2)ans=ans|(1<<i);
60     }
61     printf("%d",ans);
62     return 0;
63 }

complete code

转载于:https://www.cnblogs.com/eternhope/p/9475712.html

[NOI2014] 起床困难综合症相关推荐

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

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

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

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

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

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

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

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

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

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

  6. bzoj3668 [Noi2014]起床困难综合症

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

  7. 【题解】洛谷P2114 [NOI2014]起床困难综合症

    前往:我自己搭建的博客 题目 洛谷P2114 [NOI2014]起床困难综合症 题解 题意简化为:在0~m之间找一个数,使得这个数在一系列操作后最大. 由于原数有大小限制,又要使得到的数尽量大,为了充 ...

  8. [BZOJ 3668UOJ #2][Noi2014]起床困难综合症(贪心)

    Description 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争.通过研究相关文献,他找 ...

  9. BZOJ3668:[NOI2014]起床困难综合症(贪心)

    Description 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争.通过研究相关文献,他找 ...

最新文章

  1. Tomcat6(含Tomcat6)之后默认没有common,server和shared文件夹,如何配置
  2. 平安京服务器维护不能打字,《决战!平安京》:玩的真的累,我真的是服了这破游戏的举报系统...
  3. 织梦配置多个mysql_一台机器,多个mysqld服务
  4. 账号 linux_Linux入门之UID和GID(用户ID和组ID)
  5. 《江南百景图》,解谜经营背后的逻辑
  6. [css] 你有没有自己写过一套UI库?说下遇到哪些难点?
  7. 敲了几年代码,是时候考虑以后的发展了
  8. 在DELL服务器上升级ESXI 5.5
  9. django mysql开发_基于django框架web项目实战开发四 django+mysql实现增删查改功能
  10. python 微信公众号-回调模式验证url
  11. 通过Docker进程pid获取容器id
  12. openssl学习笔记--CA及https网站证书配置
  13. IDEA SpringBoot多模块项目搭建详细过程(转)
  14. java中跑批指的是什么_DB2几个问题的处理(三)
  15. foxmail html模板,Foxmail“邮件模板”功能全攻略
  16. 注册公司的基本流程 version_1.0
  17. 用贾樟柯访谈评《疯狂的程序员》
  18. 区块链技术在食品供应链领域的应用
  19. 嵌入式服务器appweb交叉编译指南
  20. shell切分字符串到数组

热门文章

  1. linux代码工具tag,gcov-dump原理分析_Linux平台代码覆盖率测试
  2. OpenCV:SURF算法浅析
  3. 16进制 转为图片 php_Python 十六进制hex-bytes-str之间的转换和Bcc码的生成
  4. swoole 协程channel乱测
  5. WebStorm使用教程
  6. 今天刚开通博客,很开心
  7. libev源码分析--常用的watcher
  8. 转载并学习实现三重DES加密解密代码(一)
  9. c语言 字符串map,C语言实现BitMap
  10. Android BroadcastReceiver,广播与进程通讯,APK安装广播,获取已安装列表