[NOI2014] 起床困难综合症

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

原题链接:洛谷 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

统计一行文本的单词个数_word操作技巧:不同情况的文字统计方法

最近有朋友询问&#xff0c;如何快速统计出Word文档的字数&#xff1f;这个问题其实非常简单&#xff0c;但往往是这种最简单的知识容易被大家忽视&#xff0c;因此造成困扰。所以&#xff0c;今天我们将为大家详细介绍几种Word统计文档字数的方法&#xff0c;希望能帮助到你&a…

linux mysql5.6.27源码安装和错误解决

centos mysql5.6.27 1编译安装 先进入到文件放置的路径下 创建一个个文件 #mkdir–p /data/mysql/mysql #mkdir–p /data/mysql/mysqldat 2创建用户和用户组 groupadd mysql useradd -r -g mysql mysql 3赋予数据存放目录权限 chown mysql:mysql -R /data/mysql/mysqldata/ 4解…

mysql集群和主从区别_搭建MySQL主从集群,主从复制过程中同步延迟问题

上一节我们成功搭建了主从复制、读写分离&#xff0c;实际上并发量和数据量不大的情况下&#xff0c;使用起来也是非常的流畅&#xff0c;无任何问题&#xff0c;可以正常运行了。但是&#xff0c;要保证高可用&#xff0c;高并发的情况&#xff0c;可以写数据库master就有累了…

java I O类大全_Java I/O最简单的几个类

今天把I/O中最简单的几个类整理了一下&#xff0c;之所以整理最简单的&#xff0c;是因为这样会让我更加快速方便的理顺这里面的东西&#xff0c;以前每一次用的时候都要先百度一下&#xff0c;觉得很烦。首先需要先看一下Read,Write和Stream&#xff0c;那么看下面的图就明确多…

linux mysql数据库备份并删除前一分钟的数据

linux 中mysql数据库定时备份并删除前一分钟的所有数据 #!/bin/bash #mysqldump -uroot -ppassword01! imaginebase > /home/backup/imaginebase_KaTeX parse error: Expected EOF, got # at position 27: …%d_%H%M%S).sql #̲mysqldump -uroo…(date %Y%m%d_%H%M%S).sql.g…

打开 igv java_必备可视化Integrative Genomic Viewer(IGV)

你会用到的网站&#xff1a;写在前面&#xff1a;之前mac不小心升级了一下java&#xff0c;然后igv就不能用了&#xff0c;要写教程必须降级java首先&#xff0c;看官方说明&#xff0c;需要安装Java -8&#xff0c;9以上版本不支持。我的mac不知道什么时候更新到了java 10&…

机器学习项目笔记

项目清单: 1. 商业目标2. 划定问题               监督或非监督&#xff0c;还是强化学习。3. 选择什么算法             回归还是分类&#xff0c; 数据量小可使用单机内存的 批量计算&#xff0c; 数据量大使用分布式的MapReduce 线上计算。4. 评估模型…

linux mysql主从配置

1准备两台服务器 一台是192.168.118.128 一台是192.168.118.129 2主服务器配置 192.168.118.128 修改my.cnf文件 server-id1 log-binmysql-bin #启动MySQL二进制日志系统&#xff0c; binlog-do-dbourneeddb #需要同步的数据库 binlog-ignore-dbmysql #不同步mysql系统数据库&…

svn新建仓库

1昨天需要在服务器上新建一个仓库&#xff0c;解决方法是把已有的仓库拷贝出来&#xff0c;库删除在放进去 2然后今天想看看有没有命令的方法 find / -name project 首先查看一下项目的位置 3创建仓库 svnadmin create /mnt/raid1/huge/project/test 4cd test Ls 5vi authz…

MySql数据库索引原理

写在前面&#xff1a;索引对查询的速度有着至关重要的影响&#xff0c;理解索引也是进行数据库性能调优的起点。考虑如下情况&#xff0c;假设数据库中一个表有10^6条记录&#xff0c;DBMS的页面大小为4K&#xff0c;并存储100条记录。如果没有索引&#xff0c;查询将对整个表进…

java实现坐标图进行拖拉拽放_js实现限定区域范围拖拉拽效果

本文实例为大家分享了js实现限定区域范围拖拉拽的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下需要在范围内拖拉拽&#xff0c;之前看来许多资料觉得都不是特别满足要求&#xff0c;今天自己写了一个&#xff0c;通过监听鼠标按下、鼠标抬起、鼠标移动事件来控制代…

mysql + keepalived高可用

1上次说过了mysql的主从配置 tar zxf keepalived-1.2.7.tar.gz cd keepalived-1.2.7 yum install gcc gcc-c yum install kernel-devel -y 2报错 configure: error: Popt libraries is required yum install popt-devel 3继续执行 ./configure --with-kernel-dir/usr/src/kerne…

java+向前进一_Java 线程基础

前言线程并发系列文章&#xff1a;熟练掌握线程原理与使用是程序员进阶的必经之路&#xff0c;网上很多关于Java线程的知识&#xff0c;比如多线程之间变量的可见性、操作的原子性&#xff0c;进而扩展出的Volatile、锁(CAS/Synchronized/Lock)、信号量等知识。有些文章只说笼统…

电子报账系统源码_网上商城系统建设心得,轻松搞定选择困难

当前&#xff0c;我们正处于一个互联网飞速发展的时代&#xff0c;特别是互联网电商的出现&#xff0c;给我们的生活带来了翻天覆地的变化&#xff0c;不出家门便可购买各种商品&#xff0c;不用再到处奔走寻找&#xff0c;通过网络便可快速下单&#xff0c;然后坐等送货上门。…

源码安装httpd

1 tar -xvf apr-1.7.0.tar.gz tar -xvf apr-util-1.6.1.tar.gz tar -xvf httpd-2.2.6.tar.gz 2cd apr-1.7.0 ./configure Make Make install 3cd apr-util-1.6.1 ./configure --with-apr/usr/local/apr 解决rpm -ivh libexpat-devel-2.2.4-alt1.i586.rpm tar -xvf expat-2.2…

python如何运行py程序_如何用Python汇款:Web3.py教程

Python开发人员对于以太坊和区块链库的技术练习。警告&#xff1a;下面的教程包含这些元素&#xff1a;显式加密、点对点金融服务以及可能的违规行为。这些例子仅仅是为了说明Python区块链的强大功能和便捷性。嗨&#xff0c;Pythoners&#xff0c;你们好&#xff01;我真的很喜…

基于域名的apache服务器

1承接上个博客说的&#xff0c;咱们继续扩展 Cd /usr/local/apache2/conf /usr/local/apache2/conf/extra扩展文件 Vi httpd-vhosts.conf <VirtualHost *:80> ServerAdmin 1327629137qq.com DocomentRoot “/data/webapps/www1” ServerName www.wugk1.com <Directory…

MySQL 数据库修改登录密码

MySQL 数据库修改登录密码、、 -------- mysql修改密码 默认的密码为空&#xff1a;mysql -u root -p第一次更改密码&#xff1a;mysqladmin -uroot -p password xhyEnter password: xhy 第二次更改密码&#xff1a; mysqladmin -uroot -pxhy password xhy1mysql -u root -p En…

python列表统计每个元素出现次数_python 统计list中各个元素出现的次数的几种方法...

利用字典dict来完成统计举例&#xff1a;a [1, 2, 3, 1, 1, 2]dict {}for key in a:dict[key] dict.get(key, 0) 1print dict输出结果&#xff1a;>>>{1: 3, 2: 2, 3: 1}利用Python的collection包下Counter的类举例&#xff1a;from collections import Countera …

raid5需要几块硬盘_Raid5磁盘阵列数据恢复思路分析--附真实案例

1.raid5磁盘阵列数据恢复思路分析Raid5磁盘阵列是一种相对安全的磁盘阵列形式&#xff0c;数据分布状态有点类似于raid0磁盘阵列。但是raid5阵列比raid0阵列更为安全的一点就是阵列的每一组平行数据块中都包含了一个校验块&#xff0c;校验块的作用主要表现在阵列有一块硬盘掉线…