记录编号 547893 评测结果 AAAAAAATAA
题目名称 [NOIP 2004]虫食算 最终得分 90
用户昵称 Gravatar云卷云书 是否通过 未通过
代码语言 C++ 运行时间 1.055 s
提交时间 2019-12-20 21:11:21 内存使用 13.66 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,a[4][27],z[27];
bool shu[27];char ch;
void init()
{
	int i,j;
	cin>>n;
	for (i=1;i<=3;i++)
		for (j=n;j>=1;j--)
		{cin>>ch;a[i][j]=ch-'A'+1;}
	for (i=0;i<=n;i++) {shu[i]=true;z[i]=-1;}
}
void out()
{
	int i;
	for (i=1;i<=n-1;i++) cout<<z[i]<<' ';
	cout<<z[n]<<endl;exit(0);
}
void dfs(int h,int l,int jw)
{
	int r,jw1;
	if (l>n)
	{
		if (jw==0) out();
	}else
	{
		if (z[a[h][l]]==-1)
		{
			for (r=n-1;r>=0;r--)
			{
				if (shu[r])
				{
					if (h==3)
					{
						if ((z[a[h-2][l]]+z[a[h-1][l]]+jw)%n==r)
						{
							shu[r]=false;z[a[h][l]]=r;
							jw1=(z[a[h-2][l]]+z[a[h-1][l]]+jw)/n;
							dfs(1,l+1,jw1);
							shu[r]=true;z[a[h][l]]=-1;
						}
					}else 
					{
						z[a[h][l]]=r;shu[r]=false;
						dfs(h+1,l,jw);
						z[a[h][l]]=-1;shu[r]=true;
					}
				}
			}
		}else
		{
			if (h==3)
			{
				if ((z[a[h-1][l]]+z[a[h-2][l]]+jw)%n==z[a[h][l]])
				{
					jw1=(z[a[h-1][l]]+z[a[h-2][l]]+jw)/n;
					dfs(1,l+1,jw1);
				}
			}else dfs(h+1,l,jw);
		}
	}
}
int main()
{
	freopen("alpha.in","r",stdin);
	freopen("alpha.out","w",stdout);
	init();
	dfs(1,1,0);
	return 0;
}