1. 程式人生 > >【NOI2014】起床困難綜合癥 位運算+貪心

【NOI2014】起床困難綜合癥 位運算+貪心

困難 hide 答案 none har class gif pre 位運算

這道題先求出0和-1經過處理後的答案 具體看代碼吧

技術分享
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int v0=0,v1=-1,ans,av,n,m,x;
int main()
{
    char ch[15];
    scanf("%d %d",&n,&m);
    for(int i=1;i<=n;i++){
        scanf("%s %d",ch,&x);
        if(ch[0]==A) v0&=x,v1&=x;
        
else if(ch[0]==O) v0|=x,v1|=x; else v0^=x,v1^=x; } for(int i=(1<<30);i;i>>=1){ if((v0&i)<(v1&i)&&ans+i<=m) ans+=i,av+=i; else av+=i&v0; } printf("%d\n",av); return 0; }
View Code

【NOI2014】起床困難綜合癥 位運算+貪心