起床困难综合症
Posted 废柴废柴少女
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了起床困难综合症相关的知识,希望对你有一定的参考价值。
题目:
https://ac.nowcoder.com/acm/problem/17857
思路:
用全0和全1的串分别去经历一遍
位运算时每位都是独立的
0最终变1 ,肯定是1;
1最终是1,如果这个数这一位取了1且<=m,那么这位是1;
#include<stdio.h>
int main()
{
unsigned int n,m,s1,s0;
s1=(1<<30)-1,s0=0;
scanf("%d %d",&n,&m);
char a[5];
int x;
for(int i=1;i<=n;i++)
{
getchar();
scanf("%s %d",a,&x);
if(a[0]==\'A\')
s0&=x,s1&=x;
else if(a[0]==\'O\')
s0|=x,s1|=x;
else
s0^=x,s1^=x;
}
int ans=0;
int r=0;
for(int j=31;~j;j--)
{
if((s0>>j)&1)
ans+=(1<<j);
else if(((s1>>j)&1)&&((r+(1<<j)<=m)))
r+=(1<<j),ans+=(1<<j);
}
printf("%d\\n",ans);
}
以上是关于起床困难综合症的主要内容,如果未能解决你的问题,请参考以下文章