1321 棋盘问题 &[kuangbin带你飞]专题一 简单搜索 A
来源:互联网 发布:android程序员 编辑:程序博客网 时间:2024/06/15 05:35
A - 棋盘问题
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。
Input
输入含有多组测试数据。
每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n
当为-1 -1时表示输入结束。
随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示空白区域(数据保证不出现多余的空白行或者空白列)。
Output
对于每一组数据,给出一行输出,输出摆放的方案数目C (数据保证C<2^31)。
Sample Input
2 1
#.
.#
4 4
…#
..#.
.#..
-1 -1
Sample Output
2
1
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;char ans[20][20];bool y[20];int counts=0;int n,k;void dfs(int tx,int num) { if(num==k) { counts++; return ; } if(tx>=n) return ; for(int i=0;i<n;i++) { if(y[i]==false||ans[tx][i]=='.') continue; y[i]=false; dfs(tx+1,num+1); y[i]=true; } dfs(tx+1,num); return ;}int main(){ ios::sync_with_stdio(0); cin.tie(0); while(cin>>n>>k&&n!=-1) { memset(y,true,sizeof(y)); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { cin>>ans[i][j]; } } counts=0; dfs(0,0); cout<<counts<<endl; } return 0;}
阅读全文
0 0
- [kuangbin带你飞]专题一 简单搜索 A - 棋盘问题(POJ 1321)
- 1321 棋盘问题 &[kuangbin带你飞]专题一 简单搜索 A
- [kuangbin带你飞]专题一 简单搜索 A - 棋盘问题 poj1321
- [kuangbin带你飞]专题一 简单搜索->A - 棋盘问题
- [kuangbin带你飞]专题一 简单搜索 -A - 棋盘问题
- POJ 1321棋盘问题---[kuangbin带你飞]专题一 简单搜索
- [kuangbin带你飞] 专题一 简单搜索 棋盘问题 :DFS
- [kuangbin带你飞]专题一 简单搜索 A POJ1321
- [kuangbin带你飞]专题一 简单搜索 A
- [kuangbin带你飞]专题一 简单搜索 -A
- [kuangbin带你飞]专题一 简单搜索 A
- POJ 1321 棋盘问题(kuangbin带你飞 专题一)
- kuangbin带你飞专题1(搜索)A-棋盘问题
- kuangbin带你飞 A 搜索 ——棋盘问题
- [kuangbin带你飞]专题1 简单搜索 A
- [kuangbin神带你飞]专题一 简单搜索
- kuangbin带你飞 专题一 简单搜索 (题解)
- Fire Game [kuangbin带你飞]专题一 简单搜索
- 编程测试顺序容器矢量(vector)的主要功能和使用方法
- 你好,下半年
- Java面向对象中的多态性
- 第七天学习java笔记面向对象
- 免安装版本的mysql-5.6.36x64配置方法
- 1321 棋盘问题 &[kuangbin带你飞]专题一 简单搜索 A
- 学const写出来的3个有意思的情况
- python中elif和which简单介绍及注意事项(含笔记)
- 题目十一 Apple catching
- A child container failed during start Tomcat 错误提示
- Simplify-Core --Json解析(Json parser)
- 完全二叉树遍历
- HTML中html元素的lang属性的说明
- BAT及各大互联网公司2014前端笔试面试题:JavaScript篇