POJ1321 棋盘问题
棋盘问题
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 8895 | Accepted: 4278 |
Description
Input
每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n
当为-1 -1时表示输入结束。
随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示空白区域(数据保证不出现多余的空白行或者空白列)。
Output
Sample Input
2 1#..#4 4...#..#..#..#...-1 -1
Sample Output
21
1 #include <cstdlib> 2 #include <iostream> 3 #include <cstdio> 4 #include <algorithm> 5 #include <string.h> 6 #include <cmath> 7 using namespace std; 8 9 char map[10][10]; 10 int c; 11 12 int check(int n,int i) 13 { 14 int j; 15 for(j=1;j<=n;j++) 16 if(map[j][i]=='0') 17 return 0; 18 return 1; 19 } 20 21 int dfs(int n,int num,int s) 22 { 23 int i,j,k; 24 25 if(num==0) 26 {c++;return 1;} 27 if((n-s+1)<num) 28 return 0; 29 30 31 for(i=s;i<=n;i++) 32 for(j=1;j<=n;j++) 33 { 34 if(map[i][j]!='#') 35 continue; 36 if(!check(i,j)) 37 continue; 38 39 map[i][j]='0'; 40 dfs(n,num-1,i+1); 41 map[i][j]='#'; 42 } 43 44 return 1; 45 } 46 47 48 49 50 int main(int argc, char *argv[]) 51 {//freopen("C:/Users/shp/Desktop/in.txt","r",stdin); 52 //freopen("C:/Users/shp/Desktop/out.txt","w",stdout); 53 int n,k,i,j; 54 while(scanf("%d%d",&n,&k)!=EOF) 55 { 56 if((n==-1)&&(k==-1)) 57 break; 58 getchar(); 59 for(i=1;i<=n;i++) 60 {for(j=1;j<=n;j++) 61 scanf("%c",&map[i][j]); 62 getchar(); 63 } 64 65 c=0; 66 67 dfs(n,k,1); 68 cout<<c<<endl; 69 70 } 71 72 73 74 75 76 77 78 system("PAUSE"); 79 return EXIT_SUCCESS; 80 }
转载于:https://www.cnblogs.com/zjushuiping/archive/2012/05/31/2528169.html
POJ1321 棋盘问题相关推荐
- 【POJ1321棋盘问题】【poj2251Dungeon Master】【poj3278Catch That Cow】【poj1426Find The Multi】
POJ1321棋盘问题 题意:在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k ...
- POJ1321 棋盘问题(DFS)
深度搜索,但是要注意搜索的方式: 本文给出两份代码,一份是AC代码,一份是超时的,你们感受下. 从第一行开始,对于每一行,搜索整行,如果有'#',标记,然后,则搜索下一行. AC代码: /*POJ13 ...
- POJ1321(棋盘问题)
Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子 ...
- poj1321棋盘问题
题目链接 Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆 ...
- POJ1321 Bailian1321 棋盘问题【DFS】
棋盘问题 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 52525 Accepted: 25387 Descriptio ...
- 简单搜索 poj1321
poj1321 棋盘问题 #pragma warning(disable:4996) #include<iostream> #include<string> #include& ...
- ACM题集以及各种总结大全(转)
ACM题集以及各种总结大全! 虽然退役了,但是整理一下,供小弟小妹们以后切题方便一些,但由于近来考试太多,顾退役总结延迟一段时间再写!先写一下各种分类和题集,欢迎各位大牛路过指正. 一.ACM入门 关 ...
- CCF认证训练行动路线图
通过CCF认证的训练题选自三个方面,一是CCF认证试题,二是使用北大百练的练习题等等,三是ACM-ICPC的练习题. CCF认证的试题是必须练习的,通过CCF试题的练习有助于了解试题风格特点.然而CC ...
- 《程序设计技术》课程辅助学习资料
本文档提供课程相关的辅助学习资料. 阅读程序是提高程序设计水平的最为有效的方法,<程序设计技术>课程至少应该阅读后面提供链接博文中的基础部分.能够阅读完基础部分的博文,则可以给课程学习奠定 ...
最新文章
- Linux+mysql重置_linux环境mysql重置密码
- python爬虫案例讲解-Python爬虫案例集合
- 从Struts2 action 获取json 数据格式 显示到Jquery EasyUI
- Wince 添加中文字库
- 智能机浏览器版本信息获取
- 一个免费调用的OData服务,无需用户名密码,适用于SAP UI5的学习
- 专业的在线ps照片处理网页源码
- 去除狂人采集器添加在帖子中的广告信息
- Wireshark验证TCP三次握手四次挥手
- sencha touch 入门学习资料大全
- ajax中加html,向DIV中写入HTML(AJAX高手赐教)
- WordPress搬家教程:换空间与换域名
- 游戏开发中的那点英语
- 【IE知识】最系统、完整的标准工时学习资料;标准作业(SOP)详解;生产线布局规划
- python输入复数_如何在Python中作为用户输入获取复数?
- Java doc转docx
- ArcGIS ArcTooBox中的工具执行没有结果的处理办法
- # 这是一级标题 ## 这是二级标题
- 【笔记】微信开发者工具自定义编译模式(编译时,携带 指定参数 直接跳转 指定页面)
- Mysql 查询数据库容量大小的方法步骤
热门文章
- Java判断文件类型
- mysql 代替intersect_MySQL不支持INTERSECT和MINUS及其替代方法_MySQL
- excel批量更改超链接_Excel如何批量建立超链接,搭建工作台
- LA2965侏罗纪(异或和为0的最大数字个数)
- 计算机网络-信道的极限容量
- 【MATLAB】界面介绍 ( 标题栏 | 选项卡 | 命令窗口 | 编辑器 | 变量命名规则 )
- 【Flutter】Icons 组件 ( 加载 Flutter 内置的图标 | 材料设计图标完整展示 )
- 模拟layui弹出层
- POJ - 1509 Glass Beads
- win10系统下多python版本部署