hdu 2514—— Another Eight Puzzle

來源:互聯網
上載者:User

深搜

#include<iostream>#include<cstdio>#include<cstring>using namespace std;int num[10], a[10] ,vis[10],ans[10];int k,flag;void dfs(int x){int i,j;if(x==k){flag++;for(i=0;i<8;i++)ans[i]=num[i];return ;}if(flag>1)return ;for(j=1;j<=8;j++){if(vis[j])continue;if(a[x]==0){if(abs(j-num[1])==1||abs(j-num[3])==1||abs(j-num[2])==1)continue;}if(a[x]==1){if(abs(j-num[0])==1||abs(j-num[2])==1||abs(j-num[4])==1||abs(j-num[5])==1)continue;}if(a[x]==2){if(abs(j-num[0])==1||abs(j-num[1])==1||abs(j-num[3])==1||abs(j-num[4])==1||abs(j-num[5])==1||abs(j-num[6])==1)continue;}if(a[x]==3){if(abs(j-num[0])==1||abs(j-num[2])==1||abs(j-num[5])==1||abs(j-num[6])==1)continue;}if(a[x]==4){if(abs(j-num[1])==1||abs(j-num[2])==1||abs(j-num[5])==1||abs(j-num[7])==1)continue;}if(a[x]==5){if(abs(j-num[2])==1||abs(j-num[1])==1||abs(j-num[4])==1||abs(j-num[7])==1||abs(j-num[6])==1||abs(j-num[3])==1)continue;}if(a[x]==6){if(abs(j-num[3])==1||abs(j-num[2])==1||abs(j-num[5])==1||abs(j-num[7])==1)continue;}if(a[x]==7){if(abs(j-num[4])==1||abs(j-num[5])==1||abs(j-num[6])==1)continue;}num[a[x]]=j;vis[j]=1;dfs(x+1);num[a[x]]=-1;vis[j]=0;}}int main(){int i;int t;int count=1;cin>>t;while(t--){k=0;memset(vis,0,sizeof(vis));for(i=0;i<8;i++){cin>>num[i];if(num[i]==0){a[k++]=i;num[i]=-1;//注意此處 }elsevis[num[i]]=1;}printf("Case %d: ",count++);flag=0;dfs(0);if(flag==1){printf("%d",ans[0]);for(i=1;i<8;i++)printf(" %d",ans[i]);cout<<endl;}else{ if(flag==0)cout<<"No answer"<<endl;elsecout<<"Not unique"<<endl;}}return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.