关于月赛T2
  • 板块学术版
  • 楼主Trubiacy_
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/4/22 18:08
  • 上次更新2023/10/23 17:46:53
查看原帖
关于月赛T2
750535
Trubiacy_楼主2023/4/22 18:08

蒟蒻做了两个多小时,,自己都快绕进去了,,,理解题目大半天写了个样例都过不去的东西

#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;
}

2023/4/22 18:08
加载中...