1023
来源:互联网 发布:阳光一百置业 知乎 编辑:程序博客网 时间:2024/05/13 15:29
AC代码:
#include<stdio.h>
#include<math.h>
#include<string.h>
int a[10],vis[10],ans[10],anscnt;
int abs(int q)
{
if(q<0) return -q;
return q;
}
int ok()
{
if(abs(a[2]-a[1])!=1&&
abs(a[3]-a[1])!=1&&
abs(a[4]-a[1])!=1&&
abs(a[2]-a[3])!=1&&
abs(a[2]-a[5])!=1&&
abs(a[2]-a[6])!=1&&
abs(a[3]-a[4])!=1&&
abs(a[3]-a[5])!=1&&
abs(a[3]-a[6])!=1&&
abs(a[3]-a[7])!=1&&
abs(a[4]-a[6])!=1&&
abs(a[4]-a[7])!=1&&
abs(a[5]-a[6])!=1&&
abs(a[5]-a[8])!=1&&
abs(a[6]-a[7])!=1&&
abs(a[6]-a[8])!=1&&
abs(a[7]-a[8])!=1
)
return 1;
else return 0;
}
void DFS(int k)
{
int i,cnt=0;
if(k==9)
{
if(ok())
{
anscnt++;
if(anscnt==1)
{
for(i=1;i<=8;i++)
ans[i]=a[i];
}
}
return;
}
if(anscnt>=2) return;
if(a[k]!=0) DFS(k+1);
else
for(i=1;i<=8;i++)
{
if(!vis[i])
{
a[k]=i;
vis[i]=1;
DFS(k+1);
a[k]=0;
vis[i]=0;
}
}
}
int main()
{
int t,cas=0;
scanf("%d",&t);
while(t--)
{
anscnt=0;
int i;
memset(vis,0,sizeof(vis));
memset(ans,0,sizeof(ans));
scanf("%d %d %d %d %d %d %d %d",&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8]);
for(i=1;i<=8;i++) vis[a[i]]=1;
DFS(1);
printf("Case %d: ",++cas);
if(anscnt==1)
{
for(i=1;i<8;i++) printf("%d ",ans[i]);
printf("%d\n",ans[i]);
}
else if(anscnt==0) printf("No answer\n");
else printf("Not unique\n");
}
return 0;
}
- 1023
- 1023
- 1023
- 1023
- 1023
- 1023
- 1023
- 1023
- 1023
- 1023
- 1023
- 1023
- 1023
- 1023
- 1023
- 1023
- 1023
- 1023
- Bitmap的加载与Cache(一)
- 排序算法总结
- CSS样式二--字体、文本样式
- 从window中的eclipse中提交jar包到yarn框架运行,出现Exception from container-launch: org.apache.hadoop.util.Shell$
- Java设计模式--------中介者模式
- 1023
- 怎样申请微信公众平台接口测试帐号
- Linux 网卡流量工具详细介绍【转】
- 链表排序
- 数组最大子序列的和
- 中文分词、支持向量机代码实现
- MySql-使用事件调度器(event_scheduler)
- Android 高亮 TextView
- FFmpeg深入分析之零-基础