题目:
信息学奥赛一本通(C++版)在线评测系统
http://ybt.ssoier.cn:8088/problem_show.php?pid=1213
为什么好多次做题都这样,样例对了还不给过?
#include<iostream>
#include<cstdio>
using namespace std;
int MX[9],ML[16],MR[16],S[9][9],ans=0;
void print()
{
ans++;
cout<<"NO. "<<ans<<endl;
for(int i=1;i<=8;i++)
{
for(int j=1;j<=8;j++)
{
cout<<S[j][i]<<" ";
}
cout<<endl;
}
}
void DFS(int y)
{
if(y==9)
{
print();
}
else
{
int Y=y+1;
for(int i=1;i<=8;i++)
{
if(MR[Y+i-1]==0 && ML[Y-i+8]==0 && MX[i]==0)
{
S[y][i]=1;
MR[Y+i-1]=1;
ML[Y-i+8]=1;
MX[i]=1;
DFS(Y);
MR[Y+i-1]=0;
ML[Y-i+8]=0;
MX[i]=0;
S[y][i]=0;
}
}
}
}
int main()
{
DFS(1);
}