如何给网站做dns解析/教师遭网课入侵直播录屏曝光广场舞
题目链接:[NOI2014]起床困难综合症
从高位开始贪心,每个二进制位,只有两种选法,要么0要么1,。
我们肯定优先看0,如果0通过一系列条件之后变成1,肯定就选0.
如果1通过一系列变成1,并且满足m的限制,就直接选。
AC代码:
#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int N=1e5+10;
int n,m,x,ans,a0,a1=-1; string op;
signed main(){ios::sync_with_stdio(false);cin>>n>>m;for(int i=1;i<=n;i++){cin>>op>>x;if(op[0]=='A') a0&=x,a1&=x;if(op[0]=='O') a0|=x,a1|=x;if(op[0]=='X') a0^=x,a1^=x;}for(int i=30;i>=0;i--){if(a0>>i&1) ans|=(1<<i);else if((a1>>i&1)&&(1<<i)<=m) m-=(1<<i),ans|=(1<<i);}cout<<ans;return 0;
}