比赛 2025.9.6 评测结果 WWEEEEETETTEETTTEE
题目名称 Sequence Construction 最终得分 0
用户昵称 zhyn 运行时间 21.069 s
代码语言 C++ 内存使用 9.07 MiB
提交时间 2025-09-06 10:19:53
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;

int m,k;
int t=7;
bool flag;
int rec[114514];


void solv(int n,int s,int sum,int cnt){
	//cout<<n<<"\n";
	if(flag){
		return;
	}
	if(sum+100*(n-s+1)<m||sum+(n-s+1)>m){
		return;
	}
	if(s>=n+1){
		if(sum==m&&cnt==k){
			//cout<<sum<<" "<<k<<" "<<n<<" ";
			flag=true;
		}
		return;	
	}
	for(int i=1;i<=100;i++){
		if(flag){
			return;
		}
		int u=0,v=i;
		while(v){
			if(v&1){
				u++;
			}
			v=v>>1;
			//cout<<v<<"\n";
		}
		rec[s]=i;
		if(s==1){
			solv(n,s+1,sum+i,u);
		}
		else{
			solv(n,s+1,sum+i,cnt^u);
		}
	}
	
}

int main(){
	
	freopen("Sequence.in","r",stdin);
	freopen("Sequence.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>t;
	while(t--){
		cin>>m>>k;
		flag=false;
		if(k>=8){
			cout<<"-1";
			continue;
		}
		int i=m/100;
		for(;i<=m;i++){
			solv(i,1,0,0);
			if(flag){
				break;
			}
		}	
		if(flag){
			for(int j=1;j<=i;j++){
				cout<<rec[j]<<" ";
			}
			cout<<"\n";
		}
		else{
			cout<<"-1\n";
		}
	} 
	
	return 0;
}