poj 2488
2013-04-14 19:38
323 查看
简单dfs
#include <stdio.h> #include <stdlib.h> int n,m,time,ture; int a[9][9]; int make(int t,int s) { if(ture) return(0); if(t>=1&&t<=n&&s>=1&&s<=m&&a[t][s]==0) { a[t][s]=++time; if(time==n*m) { ture=1; int i,j,k; for(k=1;k<=n*m;k++) for(i=1;i<=n;i++) for(j=1;j<=m;j++) if(a[i][j]==k) printf("%c%d",j+'A'-1,i); printf("\n"); return(0); } search(t,s); time--; a[t][s]=0; } } int search(int t,int s) { if(ture) return(0); make(t-1,s-2); make(t+1,s-2); make(t-2,s-1); make(t+2,s-1); make(t-2,s+1); make(t+2,s+1); make(t-1,s+2); make(t+1,s+2); } int main() { int i,j,k,p; scanf("%d",&k); for(p=1;p<=k;p++) { scanf("%d %d",&n,&m); printf("Scenario #%d:\n",p); for(i=1;i<=n;i++) for(j=1;j<=m;j++) a[i][j]=0; time=1; ture=0; a[1][1]=1; if(n*m==1) {printf("A1\n");ture=1;} else search(1,1); if(!ture) printf("impossible\n"); printf("\n"); } return 0; }
相关文章推荐
- poj 2488
- POJ&nbsp;3301&nbsp;Texas&nbsp;Trip[三分]
- poj 3126 Prime Path
- poj&nbsp;1603&nbsp;Risk(floyd)
- poj&nbsp;1422&nbsp;Air&nbsp;Raid(匈牙利&nbsp;DAC图最…
- poj&nbsp;1014&nbsp;Dividing(多重背包)
- poj&nbsp;1177&nbsp;Picture(线段树+离散化+…
- poj&nbsp;3177&nbsp;Redundant&nbsp;Paths&nbsp;(双连…
- poj&nbsp;2112&nbsp;Optimal&nbsp;Milking(floyd+…
- poj&nbsp;2960&nbsp;S-Nim(博奕)
- POJ&nbsp;1922
- poj 1469
- poj 2485 简单的最小生…
- poj 1724
- poj 1386 欧拉图的应用
- POJ 3299:Humidex(水题)
- POJ 1401 Factorial (对数学知识考…
- poj 1252_完全背包
- ACM: 图论题 poj 1789 (一次AC的水…
- ACM: 模拟题 poj 2996