wordpress获取当前页地址/seo博客写作
Description
给出一个序列a1,2,...,n,每次操作对该序列求一遍异或前缀和,问m次操作后的序列
Input
第一行一整数
Output
输出m次操作后的序列
Sample Input
2
1 1
1
3 3
1 2 3
Sample Output
1
1 3 1
Solution
设
注:Cmn为奇数当且仅当n&m=m
Code
#include<cstdio>
using namespace std;
typedef long long ll;
#define maxn 200005
int T,n,m,a[maxn],ans[maxn];
int C(int n,int m)
{if((n&m)==m)return 1;return 0;
}
int main()
{scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);for(int i=0;i<n;i++)scanf("%d",&a[i]),ans[i]=a[i];for(int i=1;i<n;i++)if(C(m+i-1,i))for(int j=0;j+i<n;j++)ans[j+i]^=a[j];for(int i=0;i<n;i++)printf("%d%c",ans[i],i==n-1?'\n':' ');}return 0;
}