刚学OI ln1μs玄5关求条水题
查看原帖
刚学OI ln1μs玄5关求条水题
766675
da_ke楼主2024/8/4 23:03
#include <bits/stdc++.h>
#define rep(i,l,r) for(int i=(l);i<=(r);i++)

using namespace std;

typedef long long ll;
typedef double db;

const int N=2e5+24;

int n,c,ans=0;
int o[N],a[N];
bool dp[N][33];

int main()
{
#ifndef ONLINE_JUDGE
    freopen("in.in","r",stdin);
    freopen("out.out","w",stdout);
#endif
    cin>>n>>c;
    rep(i,1,n) cin>>o[i]>>a[i];
    rep(j,0,32) dp[0][j]=(c>>j)&1;
    rep(i,1,n){
        rep(j,0,32)
        {
            int k=(a[i]>>j)&1;
            if(o[i]==1) dp[i][j]=dp[i-1][j]&k;
            if(o[i]==2) dp[i][j]=dp[i-1][j]|k;
            if(o[i]==3) dp[i][j]=dp[i-1][j]^k;
        }
    }
    int ans;
    rep(i,1,n)
    {
        ans=0;
        rep(j,0,32)
            ans+=(1<<j)*dp[i][j];
        cout<<ans<<endl;
    }
}
2024/8/4 23:03
加载中...