搜索:poj 1321 棋盘问题 (DFS )

[转]http://poj.org/problem?id=1321

 

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <memory.h>
using namespace std;
int map[10][10];
int n,k,cou,sum;
void input()        	//处理输入数据,把能走的赋为0,不能的为2,走过的为1
{
	char str[10];
	for(int i=1; i<=n; i++)
	{
		cin >> str;
		for(int p=0; p<n; p++)
			map[i][p+1] = ( str[p] == '#' ? 0 : 2 );
	}
}
int find(int i,int j)  //这个函数真应该起个好名字。。。突出不来它的作用捏。。
{                       // 这个是判断是否有和i j 同行 同列的元素,没的话返回1
	for(int p=1; p<=n; p++)
		if( map[i][p] == 1 )
			return 0;
	for(int p=1; p<=n; p++)
	    if( map[p][j] == 1 )
	        return 0;
	return 1;
}
void DFS(int d)    // 深搜呀 深搜呀 深搜。。。
{
	if( cou + n - d + 1 < k ) // 这个是如果cou加上未来几行(理想情况下 n-d)+1 还小于K
	    return ;              //即没希望达到K了,早点return。。
	if( cou == k )
	{
		sum++;
		return;
	}
	if( d > n )
	    return ;
	int flag = 0;
	for(int j=1; j<=n; j++)
	{
		if( find(d,j) && !map[d][j] )
		{
			flag = 1;
			map[d][j] = 1;
			cou++;
			DFS(d+1);
			cou--;
			map[d][j] = 0;
		}
	}
	if( flag == 1 )
	    DFS(d+1);
}
int main(void)   // 这个不废话了。。 sum记录方案个数,cou记录放置的棋子个数
{
	while( cin >> n >> k && n!= -1 )
	{
		memset( map,0,sizeof(map) );
		cou = 0; sum = 0;
		input();
		DFS(1);
		cout << sum << endl;
	}
    return 0;
}

 

STM32定时器ARR寄存器详解:从‘水桶接水’到精准测速,你的PWM和编码器都靠它 本文深入解析STM32定时器ARR寄存器的核心原理与应用技巧,从PWM波形生成到编码器测速实战。通过水桶模型和硬件本质的比喻,揭示ARR如何作为定时器的'心跳节拍器',并详细探讨其在动态调频、死区时间配置和高精度PWM中的关键作用。特别针对编码器模式下的ARR配置和溢出补偿算法进行优化建议,帮助工程师提升系统性能和实时性。 阅读详情

相关推荐

NHANES数据库的介绍及使用(一)

一、数据库概况 NHANES(National Health and Nutrition Examination Survey)是一项旨在评估美国成人和儿童健康和营养状况的研究计划,计划始于20世纪60年代初期,是一项针对不同人群或健康主题的调查。 1999年该调查成为一项持续计划,涉及各种健康和营养测量,项目每年调查一个全国代表性的样本,约5000人,这些人群位于全国各县,每年对其中15个县进行访问。 NHANES访谈部分包括人口统计学、社会经济学、饮食和健康相关问题。体检部分包括生理测量、实验室检查等

Christina 5万+

[POJ 1321]棋盘问题 (DFS简单搜索)

中文题目:在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 INPUT: 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k &...

孙煜晗的博客 868

115.工业相机海康SDK开发指南(阅读)

包含初始化SDK和反初始化SDK接口。(由于看不到函数内部的具体实现,因此以下的解释仅代表个人的理解)

weixin_63779802的博客 5994

POJ-1321棋盘问题(DFS)深度优先搜索

加油。 To be better. 棋盘问题 ## Descriptions: 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵...

A's World 864

揭秘个人开发者接支付宝的‘野路子’:不用企业资质,用Python模拟扫码转账与回调监听

本文探讨了个人开发者如何通过Python模拟支付宝扫码转账与回调监听的技术实现,解析了支付宝URL协议格式,并设计了本地化的支付状态监听方案。文章强调该方法仅用于技术研究,实际应用需遵守支付宝官方接口和金融合规要求。

weixin_30736301的博客 409

[特殊字符] 从零构建携程/飞猪机票价格爬虫:Python异步抓取与反爬对抗实战

在出行决策、竞品分析、价格预测模型训练等场景中,稳定获取携程(Ctrip)和飞猪(Fliggy)的实时机票价格波动数据是刚需。然而,这两大平台均部署了业界顶尖的反爬体系——包括但不限于:动态请求签名(SignToken设备指纹采集(UACanvasWebGL接口参数加密(X-Sign_abtestcookie混淆)频率限制与 IP 封禁(滑动窗口 + 行为检测)目录前言:为什么需要自建机票价格爬虫?一、技术选型与项目架构1.1 核心技术栈1.2 系统架构图(文字描述)1.3 法律与道德声明。

2201_76125261的博客 340

POJ 1321 棋盘问题

POJ 1321 棋盘问题 POJ入口:http://poj.org/problem?id=1321 解题思路 首先这是一道深度优先搜索题目 vis[j]数组用于标记j列是否有棋子 mp[][]用于存放棋盘状况 重要的便是DFS的书写 核心思想是采用行搜索 列判断 首先确定递归终止条件为放置棋子数达到所给棋子数 终止结果体现为一种方案的产生 对于DFS的第一个参数x 它代表从第x行开始搜索 第二个...

恒治学 146

Qt实现窗口等比例缩放

在Qt中,实现窗口的等比例缩放是一个常见的需求。通过对窗口的尺寸进行调整,使得窗口的内容在缩放过程中保持相同的比例,可以提供更好的用户体验。通过以上的代码,我们实现了一个可以等比例缩放的Qt窗口。在调整窗口大小时,窗口中的标签和按钮将按比例缩放,保持内容的比例不变。首先,我们需要在Qt中创建一个窗口,并设置其内容。在该事件中,我们将根据窗口的新尺寸计算出合适的比例因子,并将其应用到窗口的内容上。现在,我们将添加功能,使得窗口可以等比例缩放。最后,我们将缩放因子应用到窗口中的标签和按钮上,调整它们的尺寸。

2301_79330511的博客 3958

poj1321棋盘问题

题目大意:输入n,k,n表示棋盘大小为n*n,接下来n行描述棋盘,#表示棋盘区域,'.'表示空白区域,棋盘区域才能放棋子,k表示要放置的棋子个数。 poj1321棋盘问题 #include #include #include using namespace std; char a[9][9]; int aa[10]; int k,countt,n; void dfs(int row,int

qq_30843195的博客 343

PCL 计算点云直线拟合的精度评价标准——直线度

计算点云直线拟合的精度评价标准——直线度

点云侠的博客 1042

TPAMI 2024 | MO-MIX:基于深度强化学习的多目标多智能体协同决策

深度强化学习(RL)已被广泛应用于解决复杂的决策问题。在许多现实世界的场景中,任务通常有多个相互冲突的目标,并且可能需要多个智能体进行合作,这些是多目标多智能体决策问题。然而,在这个交叉领域的研究工作还相对较少。现有的方法仅限于单独的领域,并且只能处理具有单一目标的多智能体决策,或者具有单一智能体的多目标决策。在本文中,我们提出了MO-MIX来解决多目标多智能体强化学习(MOMARL)问题。我们的方法基于集中训练与分散执行(CTDE)框架。

小白学视觉 1131

棋盘问题 POJ - 1321(dfs)

#include<iostream> #include<cstdio> #include<cstring> using namespace std; int n, k; const int maxn = 10; char chess[maxn][maxn]; int vis_y[maxn]; //判...

weixin_30417487的博客 129

Flatten 层的深度理解与运用

Flatten 层的深度理解与运用

你要拥有一个你喜欢并且热爱的人生 7035

poj 1321 棋盘问题 (DFS深度优先搜索)

Problem Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n...

weixin_33871366的博客 128

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

poj 1321 棋盘问题 回溯 Java

poj 1321 棋盘问题 import java.util.Arrays; import java.util.Scanner; /** * @author wangshaoyu */ public class POJ1321棋盘问题 { static int n; static int k; static int ans; static boolean[] rows; // 用于标记这一行是否已经放过棋子了 static boolean[] cols; //

weixin_46621409的博客 393

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

棋盘问题 POJ - 1321

https://vjudge.net/problem/POJ-1321 棋盘问题 POJ - 1321 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n 当为-1 -

Are_you_ready的博客 363

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

《POJ 1321 - 棋盘问题》的题解

《A - 棋盘问题》的题解 题目的描述 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n &l...

weixin_46163391的博客 646

Poj1321—棋盘问题(DFS模板题)

Poj1321—棋盘问题(DFS模板题) 题目链接:https://vjudge.net/problem/POJ-1321 问题描述: Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input ...

baobancha1923的博客 161

[POJ 1321] 棋盘问题

[POJ 1321] 棋盘问题 题目链接:http://poj.org/problem?id=1321 注意代码中的注释。 1 #include&lt;cstdio&gt; 2 #include&lt;cstring&gt; 3 using namespace std; 4 5 int n,k,total,ans; ...

Youpeng 114

kuangbin专题 专题一 简单搜索 棋盘问题 POJ - 1321

棋盘问题 POJ - 1321 题目链接:https://vjudge.net/problem/POJ-1321 题意:给一张棋盘,‘#’表示可以下棋的地方,‘.’表示不能下棋的地方。 思路:dfs,首先遍历地图找到第一个可以下棋的地方,然后从下一行开始继续dfs,如果已下棋子数等于要求棋子数,答案++ #include <iostream> #include <string.h...

SSummerzz的博客 272

棋盘问题-POJ 1321

棋盘问题-POJ 1321 Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submit Status Practice POJ 1321 Description 在一个...

87

【POJ】1321棋盘问题

题目链接:http://poj.org/problem?id=1321 题意:见题干,很清楚了。 题解:简单dfs,参照八皇后 代码: 1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 #define Max 1010 5 6 i...

deze1991的专栏 105

poj1321 棋盘问题 DFS深度优先搜索+剪枝

这几天一直在做一些水的DFS,直接上代码:

跳动的量子 1198

POJ 1321 棋盘问题(DFS深度优先搜索/回溯法)

/* 参考:http://blog.youkuaiyun.com/chinaczy/article/details/5341771 还需加强对dfs 递归的理解 */ #include #include #include using namespace std; int n,k,total; int vis[10]; char mmap[10][10]; void dfs(int l, int cnt) {

++ ‘s blog 790

POJ1321-棋盘问题-(dfs)

http://poj.org/problem?id=1321 解题: dfs中,两种情况,某一行摆不摆?某一列摆不摆? #include<stdio.h> #include<iostream> #include<algorithm> #include<cstring> #include<math.h> #in...

dengpan1889的博客 123

POJ 1321-棋盘问题

POJ 1321-棋盘问题题目描述在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8

退役的铜牌狗 373
上一篇: 搜索:Codeforces Beta Round (BFS)
下一篇: zoj 1711 || poj 1564 Sum It Up(DFS)
caoruntaogmail
博客等级 码龄18年 3粉丝 302原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值