题解:CF2175B XOR Array
fish_love_cat · · 题解
CSP-J 2025 T3 的套路,前缀异或和。
定义
若
若
然后这题是构造
那我们随意构造一个两两互不相同的
然后再从
#include<bits/stdc++.h>
#define mod 998244353
#define int long long
using namespace std;
int a[400005];
bool check(int n){
int ans=0;
for(int l=1;l<=n;l++)
for(int r=l;r<=n;r++){
int sum=0;
for(int i=l;i<=r;i++)sum^=a[i];
if(sum==0)ans++;
}
return ans==1;
}
void solve(){
int n,x,y;
cin>>n>>x>>y;
for(int i=1;i<=n;i++)a[i]=i;
a[y]=a[x-1];
for(int i=n;i;i--)a[i]^=a[i-1];
for(int i=1;i<=n;i++)cout<<a[i]<<' ';
cout<<'\n';
// cout<<"! "<<check(n)<<'\n';
}
signed main(){
int t=1;
cin>>t;
while(t--)solve();
return 0;
}
//『算了吧、算了吧。太靠近人类肯定不会有好事。听好了,我这不是忠告,而是预言。以我的银瞳起誓,你去找他绝对会遭遇不幸。』
// 它并不是没听见这些威胁的话语。
// 但它没有退缩。何为幸福,何为不幸,届时再由自己做判断。因此它顽固地坚持着。