博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 3668 [NOI2014]起床困难综合症
阅读量:6036 次
发布时间:2019-06-20

本文共 768 字,大约阅读时间需要 2 分钟。

题意:有一些位运算操作,找出一个小于m的整数使其经过这些操作后得到的数最大.

对于这个整数的每一位之间运算互不影响,所以我们从高位到地位贪心填二进制数,使其这一位能得到1

#include
using namespace std;const int N=1e5+5;int n,m;int op[N],w[N];char s[233];int calc(int x){ for(int i=1;i<=n;i++) { if(op[i]==1) x&=w[i]; if(op[i]==2) x|=w[i]; if(op[i]==3) x^=w[i]; } return x;}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { scanf("%s",s); if(s[0]=='A') op[i]=1; else if(s[0]=='O') op[i]=2; else op[i]=3; scanf("%d",&w[i]); } int u=1,qaq=calc(0); for(;u<=m;u<<=1); u>>=1; int ans=0; for(;u;u>>=1) { if(qaq&u) continue; if(ans+u>m) continue; if(u&calc(u))ans+=u; } printf("%d\n",calc(ans)); return 0;}

 

转载于:https://www.cnblogs.com/pigba/p/8981981.html

你可能感兴趣的文章
关于android im
查看>>
CSS3 transforms 3D翻开
查看>>
利用传入的Type类型来调用范型方法的解决方案
查看>>
Top命令内存占用剖析
查看>>
转 网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO
查看>>
求带分数(蓝桥杯)
查看>>
Bootstrap系列 -- 11. 基础表单
查看>>
格拉西安《智慧书》中最有价值的23条法则
查看>>
7款经典炫酷的HTML5/jQuery动画应用示例及源码
查看>>
那些年我们一起追过的缓存写法(四)
查看>>
mssql手工注入
查看>>
zoj 3203 Light Bulb,三分之二的基本问题
查看>>
Oracle如何删除表中重复记录
查看>>
洛谷八月月赛Round1凄惨记
查看>>
Retrofit 入门学习
查看>>
【树莓派】树莓派网络配置:静态IP、无线网络、服务等
查看>>
JavaScript——双向链表实现
查看>>
抽象类和借口的区别
查看>>
WebConfig配置文件详解
查看>>
nginx的location root 指令
查看>>