soj4538: ShouHuXueJie Problem DFS

来源:互联网 发布:linux xware 编辑:程序博客网 时间:2024/05/18 08:05

    类似八皇后,暴力深搜。

   其实我觉得这题目叙述不是很好,如果答案为0呢,难道不输出?

   AC代码:

#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=11;int vis[maxn],d[maxn][maxn];int ans;int n;int dfs(int sum,int cur){if(cur==n) return sum;for(int i=0;i<n;++i){ //枚举列 if(vis[i]) continue;vis[i]=1;ans=max(ans,dfs(sum+d[cur][i],cur+1));vis[i]=0;}return ans;}int main(){while(scanf("%d",&n)==1){memset(vis,0,sizeof(vis));ans=-(1<<30);for(int i=0;i<n;++i)for(int j=0;j<n;++j)scanf("%d",&d[i][j]);printf("%d\n",dfs(0,0));}return 0;}

如有不当之处欢迎指出!

0 0