提交时间:2025-10-08 15:03:35

运行 ID: 38447

#include<bits/stdc++.h> #define int long long using namespace std; void testread(){ freopen("test.in","r",stdin); freopen("test.out","w",stdout); } const int mod=998244353; int num[100010],sum[100010],num2[100010]; signed main(){ //testread(); ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); int k,q; cin>>k>>q; num[k]=1,sum[k]=1; for(int i=1;i<=q;i++){ int op,x; cin>>op>>x; if(op==1){ memset(num2,0,sizeof(num2)); for(int j=0;j<=8192;j++){ num2[j]+=num[(j^x)]; num2[j]+=num[j]; num2[j]%=mod; } for(int j=0;j<=8192;j++){ sum[j^x]+=num[j]*2; sum[j^x]%=mod; } for(int j=0;j<=8192;j++)num[j]=num2[j]; }else{ cout<<sum[x]<<endl; } } return 0; }