| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 38443 | daimo | 【S】T2 | C++ | 解答错误 | 25 | 259 MS | 1508 KB | 895 | 2025-10-08 14:45:05 |
#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){ memset(num2,0,sizeof(num2)); for(int j=0;j<=8192;j++){ num2[j]+=num[(j^x)]; num2[j]+=num[j]; } 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; }