题目链接

  这题真是恶心死我了。

  由于位运算每一位互不干涉,所以贪心由大到小选择每一位最优的解,但是要判断一下边界,如果选择该解使得原数>m则不能选择。

  代码如下

  

#include<cstdio>
#include<cstring>
#include<cctype>
inline long long read(){
long long num=,f=;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') f=-;
ch=getchar();
}
while(isdigit(ch)){
num=num*+ch-'';
ch=getchar();
}
return num*f;
} struct defend{
char c[];
long long opt;
}que[];
long long cnt;
long long ans; int main(){
long long n=read(),m=read();
for(int i=;i<=n;++i) scanf("%s%lld",que[i].c+,&que[i].opt);
for(long long i=;i>=;--i){
if(ans+((long long)<<i)>m) continue;
long long s=ans,x=ans+(<<i);
for(int j=;j<=n;++j){
char ch=que[j].c[];
long long opt=que[j].opt;
if(ch=='A'){
s&=opt;
x&=opt;
}
else if(ch=='O'){
s|=opt;
x|=opt;
}
else if(ch=='X'){
s^=opt;
x^=opt;
}
}
s=s&(<<i);
x=x&(<<i);
if(s<x) ans+=<<i;
}
for(int j=;j<=n;++j){
char ch=que[j].c[];
long long opt=que[j].opt;
if(ch=='A'){
ans&=opt;
}
else if(ch=='O'){
ans|=opt;
}
else if(ch=='X'){
ans^=opt;
}
}
printf("%lld",ans);
return ;
}

最新文章

  1. CSS 多类选择器
  2. Spring Integration
  3. node-webkit教程(9)native api 之Tray(托盘)
  4. 【EF 3】浅谈ADO数据模型生成串(一):csdl,ssdl,msl分析
  5. 使用Maven将Hadoop2.2.0源码编译成Eclipse项目
  6. JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)
  7. linux-mkdir
  8. BOM的使用
  9. go标准库的学习-path/filepath
  10. java远程调试(idea)
  11. python 全栈开发,Day86(上传文件,上传头像,CBV,python读写Excel,虚拟环境virtualenv)
  12. ssh 管理 linux登录远程服务器
  13. ionic this.navCtrl.push()和this.navCtrl.pop()
  14. docker 第一次学习(一)--安装以及相关命令
  15. android手机内的通讯录数据库
  16. python 生成元组
  17. OC - 缓存 - NSCache - 介绍
  18. hive 中与mysql 中函数同名不同意的方法记录
  19. 基于Python的接口自动化
  20. C的强制转换和C++的强制转换(转)

热门文章

  1. iOS 常用手势
  2. -bash: mail: command not found
  3. linux_base-f10-10_7 linuxulator is not (kld)loaded
  4. GoAccess参数选项
  5. MySQL常用函数使用示例
  6. (四)mybatis之mybatis初了解
  7. 如何让Spring MVC显示自定义的404 Not Found页面
  8. CPP-基础:String类
  9. 计算机完全卸载mysql
  10. 蓝牙学习(4) -- L2CAP