POJ 1321:棋盘问题
来源:互联网 发布:微信分享淘宝优惠券 编辑:程序博客网 时间:2024/06/11 09:26
点击打开题目链接
给出一个n*n的地图,只有#号位置能放置棋子,棋子之间不能同行或同列,求在地图上放置k枚棋子的方案数。
简单暴力搜索。
AC代码:
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int n,k,ans;char mp[10][10];int r[10],c[10]; ///r用来标记行,c用来标记列bool judge(int x,int y) ///判断某个位置是否合法{ if(r[x]==0 && c[y]==0 && mp[x][y]=='#') return true; else return false;}void dfs(int pos,int num){ int x = pos/n; int y = pos%n; if(num == k) { ans++; return; } if(pos == n*n) return; if(judge(x,y)) { r[x] = 1; c[y] = 1; dfs(pos+1,num+1); r[x] = 0; c[y] = 0; } dfs(pos+1,num); ///执行这一步说明位置不合法或合法不放置}int main(){ while(~scanf("%d%d",&n,&k)) { if(n == -1 && k == -1) break; for(int i = 0; i < n; i++) scanf(" %s",mp[i]); memset(r,0,sizeof(r)); memset(c,0,sizeof(c)); ans = 0; dfs(0,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 棋盘问题
- hdu 2577- How to Type (dp)&&(模拟)
- 数据结构封装之《SQueue栈式队列》
- 第八届福建省赛-重现赛 【(6+3)/12】 [待补]
- 一只萌新的linux体验
- HashMap和Hashtable的区别
- POJ 1321:棋盘问题
- HDU 5857 Median【模拟】
- 将windows系统主机上的文件拷贝到Linux系统中;将Linux系统中的文件粘贴到Windows主机中
- Puppet基础之单机模型
- Java中可变长参数的使用及注意事项
- hdu 4283 You Are the One
- java命令行构建
- sql语句用法常用(inner join,left join,right join,cross join)
- Protobuf语言指南