比赛 SBOI虎年首秀 评测结果 AAAAAAAAAAAAAAA
题目名称 奶牛排队 最终得分 100
用户昵称 op_组撒头屯 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2022-02-23 19:11:49
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int n,ed,p;
int i;
char a[40005]={0};
bool w[40000]={0};
bool ok=0;
void dfs(int num,int q){
	if (ok==1)return ;
	//cout<<num<<endl;
	if (num==ed){
		for (i=0;i<num;i++){
			printf("%c ",a[i]+'0');
		}
		cout<<endl;
		ok=1;return ;
	}
	q=2*q-a[num-n]*p;
//	cout<<num-n<<" "<<q<<endl;
	if (w[q]==0){
		w[q]=1;
		a[num]=0;
		dfs(num+1,q);
		w[q]=0;
	} 
	if (w[++q]==0){
		w[q]=1;
		a[num]=1;
		dfs(num+1,q);
		w[q]=0;
	} 
	return ; 
}
int main(){
	freopen ("cowsonparade.in","r",stdin);
	freopen ("cowsonparade.out","w",stdout);
	cin>>n;
	p=pow(2,n);
	ed=pow(2,n)+n-1;
	w[0]=1;
	for (i=0;i<n;i++){
		a[i]=0;
	}
	dfs(n,0);
	return 0;
}