HDU 1321 棋盘问题
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 47741 | Accepted: 23097 |
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
2 1
今天用一个全局变量count,快一个小时没编译过去,后来才发现count时C++的algorithm头文件一个库函数,怪不得死都不给过woc~╮(╯▽╰)╭菜鸡就得买教训
#include <iostream>
#include <string>
#include <stack>
#include <queue>
#include <map>
#include <algorithm>using namespace std;char vis[8][8];
int isSafe[8];
int sum;
int n;
int k;bool Safe(int x,int y) {if(isSafe[x] && vis[x][y] == '#') {return 1;}return 0;
}void dfs(int y,int num) { //mum已经放入棋盘的棋子个数if(num == k) { //全部放完为一种情况sum++; return;}if(y >= n) {//列结束return;}for(int i = 0;i < n;i++) {if(Safe(i,y)) {isSafe[i] = 0;//第i行被放过dfs(y+1,num+1);//去下一列放置isSafe[i] = 1;//相当于把第i行放置的棋子给拿掉}}dfs(y+1,num);//当每列结束后去进行下一行
}int main(void) {while(cin >> n >> k) {if(n == -1 && k == -1) {break;}sum = 0;for(int i = 0;i < n;i++) {for(int j = 0;j < n;j++) {cin >> vis[i][j];}}for(int i = 0;i < n;i++) {isSafe[i] = 1;}dfs(0,0);cout << sum << endl;}return 0;
}
HDU 1321 棋盘问题相关推荐
- POJ 1321 棋盘问题(回溯)
文章目录 1. 题目 1.1 题目链接 1.2 题目大意 1.3 解题思路 2. 代码 2.1 Accepted 代码 1. 题目 1.1 题目链接 http://poj.org/problem?id ...
- 1321:棋盘问题(深度优先搜索进阶)
题目链接:http://bailian.openjudge.cn/practice/1321?lang=en_US 题意: 求在一个n*n的矩阵内棋盘内摆放k个棋子的方案,这些棋子不在同一行不在同一列 ...
- POJ 1321 棋盘问题【DFS】
棋盘问题 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 35493 Accepted: 17485 Descriptio ...
- POJ 1321 棋盘问题 搜索
Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子 ...
- POJ 1321 棋盘问题 题解
棋盘问题 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 70224 Accepted: 33254 Description 在一 ...
- poj 1321 棋盘问题(dfs)
题目:http://poj.org/problem?id=1321 没什么难度,比较水... View Code 1 #include <iostream> 2 #include<c ...
- POJ - 1321 棋盘问题
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C. ...
- 深度优先搜索----poj 1321棋盘问题
题目描述 棋盘问题 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 63237 Accepted: 30234 Descr ...
- pku 1321 棋盘问题 DFS
http://poj.org/problem?id=1321 自己真是本了开始写了歌对于棋子有顺序的搜索,导致求出来是ans的阶乘种数了,因为k < n且不能在同一行同一列,只要按行搜索,记录列 ...
最新文章
- 基于WebGL架构的3D可视化平台—三维设备管理(ThingJS实现楼宇设备管理3D可视化)...
- 操作系统课设——吃水果问题
- 格式化输出--对齐及补全
- 计算机基础知识教程职称怎么计算,2017年职称计算机考试基础知识教程详解(二十)...
- inline-block清除空隙2
- 解决go build报错cannot find main module; see ‘go help modules‘
- 配置使用4台主机实现12台主机的集群
- SylixOS USB Gadget层介绍
- C++ 控制对象的创建方式和数量
- Opencv之以亚像素精度获取图片的ROI--cv.getRectSubPix
- C#昵图素材下载器源码可下我图、包图、千图等(带数据库)
- Solidity学习教程
- NVIDIA显卡驱动安装方法
- 软件工程之概要设计说明书
- Android网络框架情景分析之NetworkManagementService和Netd交互深入分析二
- 窄带包络Matlab分析,窄带随机过程的产生及其性能测试
- 【BP数据预测】基于matlab天牛须算法优化BP神经网络数据预测【含Matlab源码 1318期】
- 2021年12月电子学会图形化四级编程题解析含答案:聪明的小猫
- 软件的生命周期SDLC
- 安卓和鸿蒙系统,对标Apple Watch!魅族推首款智能手表,官宣接入华为鸿蒙系统...