这道题的正解其实没什么好说的,反而是部分分设计非常巧妙。

  之所以要单开一篇是因为当时机房的部分同学刚学位运算,我拿这个题去讲想毒瘤大家一下,于是做了一个挺好看的课件。

  ppt -> pdf -> jpg 是真的麻烦。(最后也没成功)

  开始一个大工程...手工截图!

  

最后贴一下代码。

# include <cstdio>
# include <iostream>
# include <cmath>
# define R register int using namespace std; int xx,n,Max=,M,h=,d[],y[],m[],ans[];
long long Ans=;
char a[];
char cc;
bool now,f=true; bool check(bool x,int l)
{
for (R i=;i<=n;i++)
{
now=d[i]&(<<(l-));
if(y[i]==) x=x&now;
if(y[i]==) x=x^now;
if(y[i]==) x=x|now;
}
return x;
} int read()
{
xx=;
cc=getchar();
while (!isdigit(cc)) cc=getchar();
while (isdigit(cc)) xx=(xx<<)+(xx<<)+(cc^),cc=getchar();
return xx;
} int main()
{
cin>>n>>M;
for (R i=;i<=n;i++)
{
scanf("%s",a);
d[i]=read();
if(a[]=='A') y[i]=;
if(a[]=='X') y[i]=;
if(a[]=='O') y[i]=;
Max=max((int)log2(d[i])+,Max);
}
while (M)
{
m[++h]=M&;
M=M>>;
}
Max=max(Max,h)+;
for (R i=Max;i>=;i--)
{
if((m[i]==||f==false)&&check(,i)==&&check(,i)==)
ans[i]=;
else
{
if(check(,i)) ans[i]=;
if(m[i]==) f=false;
}
}
for (R i=Max;i>=;i--)
Ans=(Ans<<)|ans[i];
cout<<Ans;
return ;
}

起床困难综合症

起床困难综合症 NOI_2014_D1T1的更多相关文章

  1. BZOJ-3668 起床困难综合症 位运算+贪心

    faebdc学长杂题选讲中的题目...还是蛮简单的...位运算写的不熟练... 3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec Memory Limit: 512 ...

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

    从高位到低位枚举期望的应该是ans最高位尽量取一.如果该数最高位为o的话能够取得1直接更新ans否则判断该位取1是否会爆m不会的话就加上. #include<cstdio> #includ ...

  3. NOI2014 起床困难综合症

    3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 225  Solved: 153[Submit][Stat ...

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

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

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

    3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 2326  Solved: 1305[Submit][St ...

  6. 【NOI2014】起床困难综合症(贪心)

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

  7. Luogu 睡觉困难综合征 ([NOI2014]起床困难综合症)

    一.[NOI2014]起床困难综合症 题目描述 网址:https://daniu.luogu.org/problemnew/show/2114 大意: 有一条链,链上每一个节点包含一个位运算f 与 一 ...

  8. [BZOJ3668] [Noi2014] 起床困难综合症 (贪心)

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

  9. [NOI 2014]起床困难综合症

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

随机推荐

  1. POJ1426(KB1-E 暴力搜索)

    Find The Multiple   Description Given a positive integer n, write a program to find out a nonzero mu ...

  2. [js常用]连续播放音频

    许多音频连续播放.有的时候音频过大会分成多个音频.播放的时候需要连续播放 <!DOCTYPE HTML> <html> <head> <meta charse ...

  3. 连接数据库 JDBC、DBCP、JNDI

    一.JDBC package com.direct.util; import java.sql.Connection; import java.sql.DriverManager; import ja ...

  4. System.Collections空间下的Hashtable类与System.Collections.Specialized下的StringDictionary的一点小区别

    哎.有一周没有写自己的博客. 最近在做一个调用web服务的小程序,没有使用c#自动生成的代理类,而是使用http-get.post.以及soap的方式去请求的,使用这http请求这种方式需要自己去拼参 ...

  5. linux系统下安装ssl证书(tomcat)

    1.申请ssl证书 2.下载ssl证书 打开此网址  https://myssl.com/cert_convert.html 将证书文件(xxx.com.crt)和密钥文件上传(xxx.com.key ...

  6. 跨域调用报表展现页面的flash打印方法

     环境说明: 项目的应用和润乾的报表应用分别部署在同一机器不同的web服务器上(IP相同,端口不同,项目的端口8080,报表应用的端口是6868). 在项目中的父页面通过iframe调用报表展现页 ...

  7. 带你从零学ReactNative开发跨平台App开发(四)

    ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...

  8. @autowired 和@resource的区别

    1. @Autowired与@Resource都可以用来装配bean.  都可以写在字段上,或写在setter方法上. 2. @Autowired默认按类型装配(这个注解是属业spring的),默认情 ...

  9. spring boot(16)-mail发邮件

    上一篇讲了如何处理异常,并且异常最终会写入日志.但是日志是写在服务器上的,我们无法及时知道.如果能够将异常发送到邮箱,我们可以在第一时间发现这个异常.当然,除此以外,还可以用来给用户发验证码以及各种离 ...

  10. 对JDBC的轻量级封装,Hibernate框架

    IDEA是真的好用... 用脑子下jar包..http://mvnrepository.com/