uva167(无异于八皇后问题)
#include<stdio.h>int c[10],a[10][10],max;void search(int cur){int i,j,tmp;if(cur==8) {tmp=0;for(i=0;i<8;i++)tmp+=a[i][c[i]];if(tmp>max) max=tmp;}else for(i=0;i<8;i++){int ok=1;c[cur]=i;for(j=0;j<cur;j++)if(c[cur]==c[j]||cur-c[cur]==j-c[j]||cur+c[cur]==j+c[j]){ok=0;break;}if(ok) search(cur+1);}}int main(){int n,i,j;scanf("%d",&n);while(n--){max=0;for(i=0;i<8;i++)for(j=0;j<8;j++)scanf("%d",&a[i][j]);search(0);printf("%5d\n",max);}return 0;}