提交时间:2025-10-08 15:06:11

运行 ID: 38450

#include<bits/stdc++.h> #define int long long using namespace std; void testread(){ freopen("xortree.in","r",stdin); freopen("xortree.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){ for(int j=0;j<=8192;j++)num2[j]=num[j]; for(int j=0;j<=8192;j++){ num2[j]+=num[(j^x)]; num2[j]%=mod; sum[j]+=num[(j^x)]*2; sum[j]%=mod; } for(int j=0;j<=8192;j++)num[j]=num2[j]; }else{ cout<<sum[x]<<endl; } } return 0; }