FZUOJ2196 Escape(bfs)

福州大学第十五届程序设计竞赛题解 E - 谁还不是个宝宝 题目链接 http://acm.fzu.edu.cn/problem.php?pid=2288 题解 求奇数中位数区间,这种方法值得记录。 代码 #include <iostream> #include <cstdio> #include <cstring> #include <cmath> using n... 阅读详情

Accept: 122    Submit: 665
Time Limit: 1000 mSec    Memory Limit : 32768 KB

 Problem Description

小明进入地下迷宫寻找宝藏,找到宝藏后却发生地震,迷宫各处产生岩浆,小明急忙向出口处逃跑。如果丢下宝藏,小明就能迅速离开迷宫,但小明并不想轻易放弃自己的辛苦所得。所以他急忙联系当程序员的朋友你(当然是用手机联系),并告诉你他所面临的情况,希望你能告诉他是否能成功带着宝藏逃脱。

 Input

有多组测试数据。

每组测试数据第一行是一个整数T,代表接下去的例子数。(0<=T<=10)

接下来是T组例子。

每组例子第一行是两个整数N和M。代表迷宫的大小有N行M列(0<=N,M<=1000)。

接下来是一个N*M的迷宫描述。

S代表小明的所在地。

E代表出口,出口只有一个。

.代表可以行走的地方。

!代表岩浆的产生地。(这样的地方会有多个,其个数小于等于10000)

#代表迷宫中的墙,其不仅能阻挡小明前进也能阻挡岩浆的蔓延。

小明携带者宝藏每秒只能向周围移动一格,小明不能碰触到岩浆(小明不能和岩浆处在同一格)。

岩浆每秒会向四周不是墙的地方蔓延一格。

小明先移动完成后,岩浆才会蔓延到对应的格子里。

小明能移动到出口,则小明顺利逃脱。

 Output

每组测试数据输出只有一行“Yes”或者“No”。 “Yes”代表小明可以成功逃脱。否则输出“No”。

 Sample Input

35 5....!S....#....!#...#E...2 2S.!E2 2SE!.

 Sample Output

YesNoYes



我这种只会做bfs模版题的渣 这题都不敢碰。。


泽神1A 钱神fb 轩神也过了。。


自己的学习方法还是存在问题 看题解太多了 自己思考太少了


两次bfs 第一次计算出岩浆到达每个点的时间 第二次判断小明是否可以逃脱


AC代码:


#include "iostream"
#include "cstdio"
#include "cstring"
#include "algorithm"
#include "queue"
using namespace std;
const int maxn = 1005;
int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};
char map[maxn][maxn];
int n, m, tt[maxn][maxn];
bool vis[maxn][maxn];
struct node
{
	/* data */
	int x, y, t;
};
bool judge1(int x, int y)
{
	if(x >= 0 && x < n && y >= 0 && y < m && tt[x][y] == -1 && map[x][y] != '#')
		return true;
	return false;
}
bool judge2(int x, int y)
{
	if(x >= 0 && x < n && y >= 0 && y < m && !vis[x][y] && map[x][y] != '#')
		return true;
	return false;
}
void bfs1()
{
	queue<node> q;
	node f, r;
	memset(tt, -1, sizeof(tt));
	for(int i = 0; i < n; ++i)
		for(int j = 0; j < m; ++j)
			if(map[i][j] == '!') {
				f.x = i;
				f.y = j;
				f.t = 0;
				tt[i][j] = 0;
				q.push(f);
			}
	int x, y;
	while(!q.empty()) {
		f = q.front();
		q.pop();
		for(int i = 0; i < 4; ++i) {
			x = f.x + dx[i], y = f.y + dy[i];
			if(judge1(x, y)) {
				tt[x][y] = f.t + 1;
				r.x = x, r.y = y, r.t = tt[x][y];
				q.push(r);
			}
		}
	}
}
bool bfs2()
{
	queue<node> q;
	node f, r;
	memset(vis, false, sizeof(vis));
	for(int i = 0; i < n; ++i)
		for(int j = 0; j < m; ++j)
			if(map[i][j] == 'S') {
				f.x = i;
				f.y = j;
				f.t = 0;
				vis[i][j] = true;
			}
	q.push(f);
	int x, y;
	while(!q.empty()) {
		f = q.front();
		q.pop();
		for(int i = 0; i < 4; ++i) {
			x = f.x + dx[i], y = f.y + dy[i];
			if(judge2(x, y) && tt[x][y] >= f.t + 1) {
				vis[x][y] = true;
				if(map[x][y] == 'E') return true;
				else if(tt[x][y] != f.t + 1) {
					r.x = x, r.y = y, r.t = f.t + 1;
					q.push(r);
				}
			}
		}
	}
	return false;
}
int main(int argc, char const *argv[])
{
	int t;
	scanf("%d", &t);
	while(t--) {
		scanf("%d%d", &n, &m);
		for(int i = 0; i < n; ++i)
			scanf("%s", map[i]);
		bfs1();
		if(bfs2()) printf("Yes\n");
		else printf("No\n");
	}
	return 0;
}


Nengo神经工程框架:脉冲神经网络的实时编译与硬件部署 脉冲神经网络(SNN)作为类脑计算的核心范式,正从生物模拟走向工程落地。其本质是用离散脉冲建模神经动力学,关键在于实现可预测、可复现的神经行为而非单纯拟合函数。Nengo基于神经工程学框架(NEF),将动态系统理论与硬件约束深度融合,通过解析式权重计算、确定性时间步长(dt)和多后端编译能力,支撑从CPU仿真到Loihi/FPGA的端到端部署。它不替代深度学习框架,而是提供面向神经形态芯片的‘神经编译器’能力,使LIF神经元参数、突触动力学与硬件时序严格对齐,显著提升实时性、能效比与物理可解释性。 阅读详情

相关推荐

Linux 命令之 localectl -- 控制系统的本地化与键盘布局

文章目录命令介绍常用选项参考示例(一)显示当前的本地化设置与键盘映射(二)设置系统的本地化字符集环境变量(三)列出本地所有字符集(四)列出所有可用的控制台键盘映射(五)设置控制台的键盘映射 命令介绍 localectl 命令可用于查询与修改系统的本地化(locale)与键盘布局的设置。 它通过与 systemd-localed.service 通信来修改例如 /etc/locale.conf 与 /etc/vconsole.conf 之类的配置文件。本地化设置控制着 用户界面的语言、字符类型与字符编码、 日

liaowenxiong的博客 5396

foj 2196 Escape

Problem 2196 Escape Accept: 40    Submit: 235 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem Description 小明进入地下迷宫寻找宝藏,找到宝藏后却发生地震,迷宫各处产生岩浆,小明急忙向出口处逃跑。如果丢下宝藏,小明就能迅速离开迷宫,但小明并不想轻易放弃自己

qq243887的专栏 503

VSCode配置ClangFormat:让C++大括号乖乖不换行(附常见样式对比)

本文详细介绍了如何在VSCode中配置ClangFormat,实现C++代码大括号不换行的格式化风格。通过对比Attach、Allman等主流大括号样式,并提供从快速设置到项目级配置的完整指南,帮助开发者打造统一、高效的代码格式化工作流,提升团队协作效率。

weixin_28835551的博客 215

HDU Problem 2196 Computer【树的直径】

Computer Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5638Accepted Submission(s): 2818 Problem Description A school bought t...

weixin_34160277的博客 161

从NHANES到发表:如何用survey包完成符合CDC要求的统计分析(含完整R代码)

本文详细介绍了如何利用R语言的survey包,对美国国家健康与营养调查数据进行符合CDC要求的统计分析。文章重点解析了NHANES数据的复杂抽样设计、权重变量的正确选择与调整,并提供了从数据获取、清洗、构建调查设计对象到执行加权回归及生成发表级表格的完整R代码实战指南,帮助研究者避免常见错误,确保分析结果的准确性与可发表性。

weixin_29054245的博客 521

逆向实战:喜马拉雅新版xm-sign算法解析与本地化生成方案

本文深入解析了喜马拉雅新版xm-sign算法的逆向过程与本地化生成方案。通过详细拆解browserid和sessionid的生成机制,提供了基于Node.js的核心代码实现,帮助开发者在不依赖官方环境的情况下生成有效签名。文章还涵盖了参数获取技巧、常见问题排查及性能优化建议,为爬虫开发者提供了实用的技术参考。

weixin_29256771的博客 299

福州大学第十四届程序设计竞赛 (题解)

To Be honset   夫走大学的  判题机是真心的烂,对STL库支持是如此的差,仍然在c++5.1---   bits/stdc++.h 头文件不支持 对于打多了CF的我来说 相当不友好, STL库 vector 动不动就超时超内存,pair也不敢用, 这能对着queue瑟瑟发抖. 习惯了直接cin,  不习惯EOF 了. A - 奖励  FZU - 2258 

Sizaif's 小屋 800

达梦数据库集群部署(主备)

达梦数据库集群部署(主备)

m0_71845127的博客 1461

福州大学第十二届程序设计竞赛题解

A:这题利用单调栈,先预处理出每个位置向下的最远位置,那么每一行单独考虑,每行就相当于一些段的子矩阵个数,利用单调栈维护,每次出栈的时候把大于当前要入栈(高度0的不入栈了)的段的部分计算出来,累加一下答案即可 B:这题可以枚举,因为一个10^15开3方之后是10^5枚举起来是没有问题的,然后枚举一个数字i,等于要计算在max(a, i * i * i)到min(i * i * i, b)区间,有

Remilia's 2016

嵌入式:简单的service框架

在嵌入式中,我们获取一个资源、设置一个变量、更新数据的话最直接的方式就是直接调用一个函数。这样的写法也可以满足基本的功能,前提是这个系统是只要一个任务,只有一个while(1)如图1.1。图1.1当有两个或者两个以上的任务的时候,同时调用一个函数(设置一个状态值、操作同一个资源、操作指针等行为)的流程如图1.2。图1.2当两个任务同时操作一个资源的时候,就会有重入的问题,会导致想不到的异常问题(数据不对、指针异常等)。

stupid的博客 986

使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第七讲)

默认是第一种键盘模式,当需要切换模式,进入到ta_event_cb函数修改模式,下面代码以数字模式举例子lv_keyboard_set_mode(kb, LV_KEYBOARD_MODE_NUMBER);在该界面中可以设置键盘文字的大小和文本类型,最下方判断键盘是否支持中文输入(中文输入,当汉字库不够大时,用户点击中文输入会少很多字)。//当LV_USE_KEYBOARD为1时启用虚拟键盘,LV_USE_ZH_KEYBOARD为1时支持中文输入。随后在系统设置界面中点击项目选项,选择显示键盘。

weixin_38828382的博客 1414

第六届福建省大学生程序设计竞赛不完全题解

昨天自己队做了一下第六届福建省赛,感觉有些蒙,赛后补了几道题,能力有限,一共只出A了7道题 A题 Super Mobile Charger 题目链接 http://acm.fzu.edu.cn/problem.php?pid=2212 水题 #include<iostream> #include<cstdio> #include&l...

Dara2015的博客 692

音视频OSD——使用freetype将矢量字库的信息叠加至YUV

目录freetypes使用步骤1)包含头文件:2) 初始化库:3)加载face对象:4)设置字体大小5)设置字体位置,以及旋转度数:6)加载字形图像准备矢量字库代码.c.h效果叠加至YUV freetypes FreeType是一个完全开源的、可扩展、可定制且可移植的字体引擎,它提供TrueType字体驱动的实现统一的接口来访问多种字体格式文件 下载freetypes tar -xjf freetype-2.4.10.tar.bz2 cd freetype-2.4.10/ ./configure

路人coder 2364

福州大学ACM/ICPC竞赛简介经验

学术俱乐部 资料 ACM/ICPC(ACM International Collegiate Programming Contest) ,是世界上公认的规模最大、水平最高的国际大学生程序设计竞赛,其目的旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。该项竞赛从1970年举办至今,一直受到国际各知名大学的重视,并受到全世界各著名计算机公司的高度关注,在过去十几年中,

alaclp的专栏 5053

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

福州大学第十五届程序设计竞赛(部分题解)

要是有什么大佬为了看一些好题的点进来的,真不好意思。。。本人实力不咋滴。只能写写水题的题解。其实还有几题是学长教我的,不然我都不会做。A、24有一天dark sil在玩24点,被杰哥看见了,杰哥就想到了这样一个问题:假设有N张卡片,上面写着1,2,3....N,是否可以用这些卡片组成24点呢?要求是只能使用加减乘除(整除),所有的卡片都必须用上,并且只能使用一次。如果可以组成24点,则输出"Yes...

Z_sea的博客 2102

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

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

FZU 2196 Escape(两次BFS)

Problem 2196 Escape Accept: 193 Submit: 1110 Time Limit: 1000 mSec Memory Limit : 32768 KBProblem Description小明进入地下迷宫寻找宝藏,找到宝藏后却发生地震,迷宫各处产生岩浆,小明急忙向出口处逃跑。如果丢下宝藏,小明就能迅速离开迷宫,但小明并不想轻易放弃自己的辛苦所得。所以他急

linlinsong—ACM界蒟水! 687

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

FZU 2196 Escape(BFS预处理+BFS搜索)

Problem 2196 Escape Accept: 123    Submit: 678 Time Limit: 1000 mSec    Memory Limit : 32768 KB Problem Description 小明进入地下迷宫寻找宝藏,找到宝藏后却发生地震,迷宫各处产生岩浆,小明急忙向出口处逃跑。如果丢下宝藏,小明就能迅速离开迷宫,但小明并不想

ysCover 911

福州大学校赛G FZU FOJ Escape 两次BFS 或者一次BFS

Problem 2196 Escape Accept: 97    Submit: 537 Time Limit: 1000 mSec    Memory Limit : 32768 KB Problem Description 小明进入地下迷宫寻找宝藏,找到宝藏后却发生地震,迷宫各处产生岩浆,小明急忙向出口处逃跑。如果丢下宝藏,小明就能迅速离开迷宫,但小明并不想轻易放弃

我的指针和我一样找不到对象 956

FZU 2196 Escape BFS

Problem 2196 Escape Accept: 19    Submit: 121 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem Description 小明进入地下迷宫寻找宝藏,找到宝藏后却发生地震,迷宫各处产生岩浆,小明急忙向出口处逃跑。如果丢下宝藏,小明就能迅速离开迷宫,但小明并不想轻易放弃自己

colorfulshark 755

福州大学第十二届程序设计竞赛 (部分题解)

福州大学第十二届程序设计竞赛 (部分题解)

Tc的专栏 1755

FZU 2196 基础搜索 BFS 八

  FZU  2196 :http://acm.fzu.edu.cn/problem.php?pid=2196 题意: 给出一个起点,终点,墙壁,通路,岩浆            人先走,上下左右一次移动一格。           岩浆后走,每次向上下左右蔓延周围各一格。          问,人能否到达终点   一眼看出,附带岩浆的BFS。   思路:先将人装入队列,再将岩浆...

Hide_in_Code 441

TT打字练习软件(dos)

这几天逛帖子,找练习打字速度的软件,因为金山的不是很适合练习打代码用,字符和数字包含的太少,而且没有什么针对性。 然后看到了TT.dos,是个很古老的练习软件,但是试用下来很爽啊。记录下安装和使用方法。 第一步:在网上下载TT,这个在csdn下载资源里有,TT+dosbox(windows)下载 第二步:找个目录放TT,然后打开dosbox运行,输入。   mount: c

Nice_punch的博客 1万+

BNUOJ 26192------------King's Poker

Poker is one of the most widely played card games, and King's Poker is one of its variations. The game is played with a normal deck of 52 cards. Each card has one of 4 suits and one of 13 ranks. Howev

Life is Float. 1061

蓝桥杯 历届试题 九宫重排 (八数码问题--康托展开去重 + bfs搜索)

题意: 简单的八数码问题: 给你两个状态 求最少步数。 可以把点变成9: 这样,9个数都不一样,相当于是阶乘的排列。 直接用bfs 搜索 康托展开去重即可。 #include #include #include #include #include #include #include #include #define Siz(x) (int)x.size() #defi

aozil_yang的博客 1728

福州大学第十五届程序设计竞赛 G - FZU FZU - 2290

Silchen有一个第1代字符串"FZU",现在定义一个下一代生成如下字符'F'可以生成字符串"FZU"字符'Z'可以生成字符串"FZ"字符'U'可以生成字符串"FU"例如:第1代是"FZU"第2代是"FZUFZFU"第3代是"FZUFZFUFZUFZFZUFU"Silchen想知道第n代的第k个位置的字符是什么Input题目包含多组测试数据,每组测试数据第一行是T表示

深海沧澜的博客 917

[bfs] fzu oj 2196 Escape

题意: 一个迷宫里面从开始走到终点的最短步数。 但是这个迷宫里面有许多的火山,会喷岩浆,岩浆每秒向四周蔓延,岩浆到过的点不能走,但是人的移动优先于岩浆。 意思就是,如果某一个时刻,岩浆和人同时到达,那么如果这个点是出口的话,这个点是可以走的。 思路: 首先bfs预处理所有的点火山蔓延到的最小时间,就是将所有火山压进队做bfs。 接着用人做一遍bfs,注意考虑上面的那个人的移动优先于岩浆

Enmity_Dark 895
上一篇: ACdream1113 The Arrow(概率dp)
下一篇: POJ2502 Subway(Floyd)
GKHack
博客等级 码龄11年 48粉丝 291原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值