POJ 1321 棋盘问题
来源:互联网 发布:测试手机信号强度软件 编辑:程序博客网 时间:2024/05/16 02:28
网上代码1:
#include<stdio.h>#include<string.h>int n,k,vis[15],ans;char mat[15][15];void dfs(int cur,int num){ if(num==k) { ans++; return; } for(int i=cur;i<n;i++) for(int j=0;j<n;j++) if(mat[i][j]=='#' && !vis[j]) { vis[j]=1; dfs(i+1,num+1); vis[j]=0; }}int main(){ while(~scanf("%d %d%*c",&n,&k) && n!=-1 && k!=-1) { memset(vis,0,sizeof(vis)); int i; for(i=0;i<n;i++) gets(mat[i]); ans=0; dfs(0,0); printf("%d\n",ans); } return 0;}网站代码2:
#include<iostream>#include<cstdio>#include<cstring>using namespace std;char a[10][10]; //记录棋盘位置int book[10]; //记录一列是否已经放过棋子int n,k;int total,m; //total 是放棋子的方案数 ,m是已放入棋盘的棋子数目void DFS(int cur){ if(k==m) { total++; return ; } if(cur>=n) //边界 return ; for(int j=0; j<n; j++) if(book[j]==0 && a[cur][j]=='#') //判断条件 { book[j]=1; //标记 m++; DFS(cur+1); book[j]=0; //改回来方便下一行的判断 m--; } DFS(cur+1); //到下一行}int main(){ int i,j; while(scanf("%d%d",&n,&k)&&n!=-1&&k!=-1) //限制条件 { total=0; m=0; for(i=0; i<n; i++) scanf("%s",&a[i]); memset(book,0,sizeof(book)); DFS(0); printf("%d\n",total); } return 0;}
my:
#include <algorithm>#include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>using namespace std;char map[15][15];int book[15];int n, k;int ans;int m;void dfs(int cur){ if(m == k){ ans++; return ; } if(cur >= n) return; for(int j = 0;j < n;j++){ if(!book[j]&&map[cur][j]=='#'){ m++; book[j] = 1; dfs(cur+1); book[j] = 0; m--; } } dfs(cur+1);}int main(){ while(~scanf("%d %d", &n, &k)){ if(n == -1 && k == -1) break; for(int i = 0;i < n;i++){ scanf("%s", map[i]); } m = 0; ans = 0; memset(book,0,sizeof(book)); dfs(0); printf("%d\n", ans); } return 0;}
0 0
- POJ 1321 棋盘问题
- poj 1321 棋盘问题
- poj 1321 棋盘问题
- Poj 1321 棋盘问题
- POJ 1321 棋盘问题
- POJ 1321 棋盘问题
- POJ-1321-棋盘问题
- poj 1321棋盘问题
- POJ 1321 棋盘问题
- poj 1321 棋盘问题
- POJ 1321 棋盘问题
- poj 1321 棋盘问题
- poj 1321 棋盘问题
- poj 1321 棋盘问题
- poj 1321 棋盘问题
- POJ 1321 - 棋盘问题
- poj 1321棋盘问题
- POJ 1321 棋盘问题
- 很漂亮的bootstrap ace静态页面后台管理系统模板
- 跟我学Redis(15)—Redis主从复制
- 8、对象的容纳
- TOJ 3845.Cut Stick(斐波那契)
- 静态库的编写与使用
- POJ 1321 棋盘问题
- centos下使用crontab执行php定时任务
- PAT乙级:1013. 数素数 (C)
- D3.js SVG绘图实践:趋势缩略图
- 【知识积累】Spring Web MVC学习(一)
- PAT-A 1002.A+B for Polynomials
- Pair: normal and paranormal 栈的应用
- 基础篇-Binder机制和AIDL使用介绍
- ListView跳坑之路