社区讨论

关于月赛T2

学术版参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lo2pr6rf
此快照首次捕获于
2023/10/23 17:46
2 年前
此快照最后确认于
2023/10/23 17:46
2 年前
查看原帖
蒟蒻做了两个多小时,,自己都快绕进去了,,,理解题目大半天写了个样例都过不去的东西
CPP
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+9;
string c,d;
long long k,sc,sd;
unsigned int a[N],b[N],res;
int n,t,T;
unsigned int yhjbh(unsigned int x){
	for(int i=0;i<=sd;i++) d[i]=0;
	sc=c.size(),sd=d.size();
	res=0;t=0;
	while(x>1){
		d[t++]=x%2;
		x=x/2;
	}
	for(int i=0;i<=max(sd,sc);i++){
		if(d[i]==c[i]) c[i]=0;
		else c[i]=1;
	}
	sc=c.size();
	for(int i=0;i<=sc;i++){
		res=c[i]*(1<<i)+res;
	}
	return res;
}
int main()
{
	scanf("%d",&T);
	while(T--){
		scanf("%d%lld",&n,&k);
		for(int i=1;i<=n;i++)
			scanf("%u",&a[i]);
		while(k--){
			for(int i=1;i<=n;i++)
				for(int j=n;j>=1;j--){
					if(j==i) continue;
					b[i]=yhjbh(a[j]);
				}
			for(int i=1;i<=n;i++){
				a[i]=b[i];
				b[i]=0;
			}	
		}
		for(int i=1;i<=n;i++) 
			printf("%u ",a[i]);
		for(int i=1;i<=n;i++){
			a[i]=0;
			b[i]=0;
		}
	}
	
	return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...