起床困难综合症

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);
}

以上是关于起床困难综合症的主要内容,如果未能解决你的问题,请参考以下文章

[NOI 2014]起床困难综合症

noi2014 起床困难综合症

3668. [NOI2014]起床困难综合症贪心

BZOJ_3668_[Noi2014]起床困难综合症_贪心

BZOJ3668: [Noi2014]起床困难综合症

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