Luogu2114 [NOI2014]起床困难综合症 【位运算】
2024-09-14 07:04:01
题目分析:
按位处理即可
代码:
#include<bits/stdc++.h>
using namespace std; const int maxn = ; int n,m;
int a[maxn],b[maxn]; void work(){
int z = ;
for(int i=;i>=;i--){
if((<<i)+z > m)continue;
int l = (<<i),r=;
for(int i=;i<=n;i++){
if(a[i] == ) l = (l&b[i]),r = (r&b[i]);
else if(a[i] == ) l = (l|b[i]),r = (r|b[i]);
else l = (l^b[i]),r = (r^b[i]);
}
if((r&(<<i)) != ) continue;
if((l&(<<i)) == ) continue;
z += (<<i);
}
for(int i=;i<=n;i++){
if(a[i] == ) z = (z&b[i]);
else if(a[i] == ) z= (z|b[i]);
else z = (z^b[i]);
}
printf("%d\n",z);
} int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
char ch = getchar();
while(ch > 'Z' || ch < 'A') ch = getchar();
if(ch == 'A'){a[i] = ;}
else if(ch == 'O'){a[i] = ;}
else a[i] = ;
while(ch != ' ') ch = getchar();
scanf("%d",&b[i]);
}
work();
return ;
}
最新文章
- CDOJ 435 (SCOI 2011) 糖果 Label:差分约束系统
- PHP学习笔记:伪静态规则的书写
- LeetCode ";Binary Tree Vertical Order";
- java web.xml配置详解(转)
- cocos2d-x 3.0环境搭建
- Gradle Import Wizard--官方文档
- COJN 0485 800503寻找平面上的极大点
- java 短信发送例子 tdy
- Database Connection Pool Library | Libzdb
- Javascrip动态添加样式,Dom操作,获取自定义属性
- (hdu 6024) Building Shops
- 浅析android系统设计中的回调思想
- Impl模式实现之注意内联
- jquery validate 详解二
- 洛谷4556 [Vani有约会]雨天的尾巴
- 利用H5本地存储localStorage、sessionStorage
- SpringBoot项目Shiro的实现(二)
- 利用 Azure Devops 创建和发布 Nuget 包
- es-hadoop saveToEsWithMeta
- python算法之冒泡排序