HDU1045 Fire Net 暴力搜索DFS

WPF+MVVM案例实战(一)- 设备状态LED灯变化实现 采用WPF+MVVM框架实现,MVVM框架使用CommunityToolkit.Mvvm 依赖包,代码案例部署了三个LED灯,按照红黄绿三色后台自动刷新状态进行变化,根据后台数据不同,UI层显示不同颜色。 阅读详情

这题给出的图的行列范围较小,所以可以暴力来做。

要解决的问题就是怎样方便的枚举完所有可能的情况,并且得到放置blockhouse的最大值。

这要在dfs上下功夫了。

代码中的dfs原型为dfs(int i,int num)。其中 i  为记录该次搜索已经到达那一个点了(i=1、2、...、n*n ,

表示从左到右、从上到下给每个点编号)。num是用来记录当前搜索已经添加的blockhouse数目,另

一个功能就是当本次搜索结束,也就是i==n*n时,和全局变量maxNum比较并保留最大值放在maxNum

中。这样当所有情况都搜完后,maxNum要求值了。

 

还有一些小细节:

1、canPlace(int row,int col) 用来判断当前点 (row,col)  所在行列是否已经放置可以攻击到该点的blockhouse。

2、如果当前点可以放置blockhouse则标记为 'o' 表示已放。当然也可以开一个二维数组visit[][]来标记。方法

不一。

 

AC代码:

#include<iostream>
using namespace std;

const int MAX=4;

char map[MAX][MAX];
int n,maxNum;   

void storeMap()   //存图
{
	for(int i=0;i<n;i++)
		cin>>map[i];
}

bool canPlace(int row,int col)   //判断是否可以放置
{                                 //在遇到墙之前同行或同列上已放置,则不能再放
	int i;

	for(i=col-1;i>=0;i--)
	{
		if(map[row][i]=='o') return false;
		if(map[row][i]=='X') break;
	}

	for(i=row-1;i>=0;i--)
	{
		if(map[i][col]=='o') return false;
		if(map[i][col]=='X') break;
	}

	return true;
}

void dfs(int i,int num)    //深搜,i代表已经搜索到的点,num代表该次搜索可以放得最多blockhouse
{                          //搜索完所有可能情况,每点'.'都会作为起点搜索一遍
	int row,col;

	if(i==n*n)
	{
		if(num>maxNum) maxNum=num;   //比较每遍搜索结果,保留当前最大值
		return;
	}
	else
	{
		row=i/n;    //从左到右,从上到下依次给每个点编号,1、2、...、n*n
		col=i%n;    //这是在取当前点所在图的行和列
		
		if(map[row][col]=='.' && canPlace(row,col))
		{
			map[row][col]='o';
			dfs(i+1,num+1);
			map[row][col]='.';
		}
		dfs(i+1,num);
	}
}

int main()
{
	while(cin>>n,n)
	{
		storeMap();

		maxNum=0;
		dfs(0,0);

		cout<<maxNum<<endl;
	}

	return 0;
}


 

 

 

避坑指南:新手爬百度图片3个致命错,改完批量保存本地(亲测有效) 新手爬百度图片的核心是“绕开静态HTML,抓准API接口+处理反爬+提取原图”,改完本文提到的3个核心错,就能稳定批量保存高清图片。这套思路可复用在其他图片网站(如必应图片、360图片),只需修改API接口和参数即可。如果想进一步优化,可添加代理IP池、多线程下载(新手不建议,容易触发反爬)、图片去重等功能! 阅读详情

相关推荐

WhatsApp API接口的隐秘角落:从协议解析到自定义消息引擎

本文深入解析WhatsApp API接口的隐秘角落,从协议逆向工程到自定义消息引擎开发实战。通过分析WhatsApp的二进制XML协议和加密机制,构建超越官方API限制的自定义消息引擎,实现高效、灵活的即时通讯解决方案。文章还提供了企业级架构设计和风控规避策略,助力开发者突破官方限制,提升消息到达率和成本效益。

q3r4s5t的博客 761

HDU 1045.Fire Net【DFS暴力搜索】【3月15】

Fire Net Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 9029    Accepted Submission(s): 5251 Problem Description Suppose that we h

Mr丶Gao 438

Rk3568 百兆以太网RMII模式DTS配置详解

本文详细解析了RK3568芯片在百兆以太网RMII模式下的DTS配置方法,包括时钟树配置、PHY接口模式定义及实际工程中的进阶设置。通过实战案例和调试技巧,帮助开发者快速解决RMII模式下的常见问题,提升工业控制设备的网络稳定性。

weixin_29189377的博客 422

HDU 1045 Fire Net

有暴力搜索和二分图匹配两种解题思路。用dfs搜比较容易,而二分图则是一种更为优化的算法。刚刚接触二分图,发现这种思路很巧妙,以后要多加练习。 下面是dfs求法 #include #include using namespace std; char map[5][5]; int visitr[5]; //记录横坐标 int visitl[5]; //记录纵坐标 int maxn,

IQ_IT的专栏 1000

【深度剖析】三一重工的数字化转型(中篇)

三一重工在数字化转型方面取得了提高效率、降低成本、加强研发创新和改善内控管理等多方面的成效。本研究旨在通过对三一重工数字化转型的深入分析,引导企业思考在第四次工业革命与第三次能源革命交汇的超级技术窗口期,如何进一步把握发展机遇,并为同行业其他企业提供探索性的建议。作为装备制造行业的佼佼者,三一重工的数字化转型受到了业界的广泛关注。作为行业内首批接触并实践数字化转型的企业之一,三一重工的转型经验不仅成功,而且积累了丰富的理论与实践,为其他制造业企业的数字化转型提供了可借鉴的范例。

领信卓越的博客 2308

避坑指南:Windows下OpenCV摄像头索引混乱问题的3种解决之道

本文详细解析了Windows下OpenCV摄像头索引混乱问题的3种解决方案,包括GUID查询法、DirectShow接口集成和注册表固化技术。针对工业视觉和智能监控场景,提供实战代码和性能优化建议,帮助开发者稳定识别多路摄像头设备,有效解决VideoCapture接口的索引漂移问题。

weixin_30836759的博客 406

杭电hdu 1045 Fire Net dfs

http://acm.hdu.edu.cn/showproblem.php?pid=1045 暴力搜索解决,只是一点不明白,在更新max值时如果我return了竟然错了,没有return就ac了。 #include #include char map[6][6]; bool used[6][6]; int n, wall; int max; void dfs(int curs,

凌语小辉 1305

从零解析特斯拉线圈:谐振变压器的核心原理与DIY实践

本文深入解析特斯拉线圈的工作原理与DIY实践,从LC振荡电路到电磁耦合,详细介绍了谐振变压器的核心原理。通过材料清单、绕制技巧和安全指南,帮助爱好者从零开始打造迷你闪电发生器,体验高压电子实验的独特魅力。

weixin_33670786的博客 494

HDU 1045 Fire Net(DFS)

Fire Net Problem Description Suppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representing a street or a piece of wall...

aadu4709的博客 188

一种解决STM32多串口同时收发的方法

在做项目中,遇到了同时调用串口通信时程序崩溃的问题,在项目中,串口1用作调试串口,串口2用作MQTT通信串口,串口3用作下位机通信串口, 串口1重定向以后,用库函数自带的printf函数打印字符串 串口2使用自己写的u2_printf函数,即va_list这套变参宏定义后使用vsprintf函数打印字符串 串口3刚开始使用串口2一样的打印方式,程序在调试调用到串口3打印函数时直接崩溃,后续将串口3改用dma转存输出,仍然无法正常调用 多次研究以后,采用三个串口都使用重定向后的库函数自带的printf

Zxp0605的博客 8797

瑞芯微RV1109平台GT911触摸屏驱动调试记录1

很明显这里可以看到系统已经配置了i2c-0、i2c-1、i2c-3、i2c-4、i2c-5,当开机的时候系统已经将相应的I2C节点注册成功了,说明I2C部分是没有问题的。

bingdund的博客 298

hdu 1045 Fire Net DFS入门题

Problem Description Suppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representing a street or a piece of wall. A blockhouse is a small castle that has four openings through which

Lionel 965

uniapp [安卓苹果App端] - errMsg“: “request:fail abort statusCode:-1 不支持的URL(-1002)Uniapp真机运行APP网络请求报错失败排查

uniapp真机运行APP,网络请求报错errMsg“: “request:fail abort statusCode:-1 不支持的URL(-1002),uni.request网路请求报错,uniApp解决请求接口报错,uniapp app端打包上线后请求报错,真机运行测试请求失败,uniapp安卓app请求报错,uniapp苹果ios平台网络请求报错,uniapp真机预览请求失败怎么办,不是跨域问题,在H5中请求可以正常发送和接收,但在真机APP上请求报错,Hbuilder真机运行app网络请求报错,全

🏆 前端领域优质创作者 3090

【DFS】hdu 1045 Fire Net

http://acm.hdu.edu.cn/showproblem.php?pid=1045 分析:从第一个点到最后一个点依此暴搜 #include #include #include using namespace std; const int NM=10; char str[NM][NM]; bool vis[NM][NM]; int mmax,num,n; bool

yduqytd的专栏 660

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

HDU 1045Fire Net(暴力DFS)

Fire Net Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5191    Accepted Submission(s): 2918 Problem Description Suppose that we h

布生气 1737

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

/hdu 1045 Fire Net(主要用到dfs)

//hdu 1045 Fire Net(主要用到dfs) /* 题意:大概意思就是:给你一张n*n的图; 只有城墙和空道,然后样在空地放房子,并且房子不对相对面; 求最多放多少个房子。 题解:dfs式暴力回溯可以: 关键是怎么dfs; 要在构一个数据图,为了更好的回溯,和判断这是否可以再放房子来防止相对面。 */ #include #include #include using namespace

u014068781的专栏 388

HDU 1045 Fire Net

传送门;http://acm.hdu.edu.cn/showproblem.php?pid=1045 解题思路: 1. 暴搜. 实现代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib>...

weixin_30908103的博客 84

HDU-1045-Fire Net

比较简单的DFS题,直接暴力搜索即可。 代码: #include #include #include using namespace std; int n,ans; char map[5][5]; void DFS(int now) { ans=max(ans,now); for(int i=0;i<n;i++) for(int j=0;j<n;j++) { bo

z309241990的专栏 613

hdu 1045 Fire Net

由于数据量比较小,所以呢.............暴力搜索! 把除去x的每个点都作为搜索的起始点,进去搜索。 搜索过程中,一个一个的去找没有被标记过且不为x的点,然后把这个点和前面所有的点进行比较判断,再dfs下去........... 看到学长只有50行的代码再次感觉自己弱爆了 #include using namespace std; char mapp[5][5]; int re,n

zafkiel_nightmare的专栏 301

Fire Net HDU - 1045 (好题)(dfs)or(二分图匹配)

Suppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representing a street or a piece of wall. A blockhouse is a small castle th...

caowenbo2311694605的博客 293

【HDU-1045,Fire Net-纯暴力简单DFS】

原题链接:点击! 大致题意:白块表示可以放置炮台的位置——每个炮台可以攻击到上下左右的直线上的炮台(也就是说在它的上下左右直线上不可以再放置炮台,避免引起互相攻击),黑块表示隔离墙的位置——不可放置并且可以阻挡炮火;求对于一个最大4*4的格子来说,最大的放置炮台的个数是多少。 简单分析: 简单的dfs();由于本题地图很小,不用考虑太多,尽情暴力即可。...

weixin_30443075的博客 78

HDU1045 Fire Net(DFS)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1045 Fire Net Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8185Accepted Submission(s): ...

weixin_30779691的博客 111

HDU 1045 Fire Net [二分图匹配]

HDU 1045 Fire Net [二分图匹配]

ACTerminate的博客 460

HDU1045 Fire Net(DFS枚举||二分图匹配)

Fire Net Problem Description Suppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representing a street or a piece of wal

Jelly_acm的博客 553

HDOJ 1045 Fire Net

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1045 题目大意:对于一个迷宫,其中’X’ 表示wall,‘.’表示空地,可以放置blockhouse,同一条直线上只能有一个blockhouse,除非有wall隔开,问在给出的图中最多能放置多少个blockhouse。   分析题意: 1、  此题有两种解法。第一种:暴力解法。从左往右,从上到

dzyhenry的专栏 754

HDU 1045 Fire Net

Fire Net Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description Suppose that we have a square city with straight streets. A map of a city is a square

锦瑟年华,逐梦之人 220

hdu 1045 Fire Net【dfs】

Fire NetTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7090 Accepted Submission(s): 4033Problem Description Suppose that we have a square

mfcheer 680
上一篇: HDU 1856 More is better 并查集 路径压缩
下一篇: HDU 2161 Primes 判断素数
lulipeng_cpp
博客等级 码龄15年 169粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值