B - 胜利大逃亡(续) HDU - 1429 bfs

hdu1429 胜利大逃亡(续) (广搜+状态压缩) 题目: 胜利大逃亡(续) 链接: http://acm.hdu.edu.cn/showproblem.php?pid=1429 yy: 本来做了道自己认为不太简单的题很高兴。。但是一看。。夏天的风直接把他归类到搜索level1里面了。。。哎。。这就是差距啊。。。 思路: 广度优先搜索 + 状态压缩 由于只有10把钥匙,所以可以直接用状态压缩来做。。。其他就不说了,其实仔细一看, 阅读详情

胜利大逃亡(续)

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 8642    Accepted Submission(s): 3117


Problem Description
Ignatius再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)……

这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带锁的门,钥匙藏在地牢另外的某些地方。刚开始Ignatius被关在(sx,sy)的位置,离开地牢的门在(ex,ey)的位置。Ignatius每分钟只能从一个坐标走到相邻四个坐标中的其中一个。魔王每t分钟回地牢视察一次,若发现Ignatius不在原位置便把他拎回去。经过若干次的尝试,Ignatius已画出整个地牢的地图。现在请你帮他计算能否再次成功逃亡。只要在魔王下次视察之前走到出口就算离开地牢,如果魔王回来的时候刚好走到出口或还未到出口都算逃亡失败。
 

Input
每组测试数据的第一行有三个整数n,m,t(2<=n,m<=20,t>0)。接下来的n行m列为地牢的地图,其中包括:

. 代表路
* 代表墙
@ 代表Ignatius的起始位置
^ 代表地牢的出口
A-J 代表带锁的门,对应的钥匙分别为a-j
a-j 代表钥匙,对应的门分别为A-J

每组测试数据之间有一个空行。
 

Output
针对每组测试数据,如果可以成功逃亡,请输出需要多少分钟才能离开,如果不能则输出-1。
 

Sample Input
4 5 17 @A.B. a*.*. *..*^ c..b* 4 5 16 @A.B. a*.*. *..*^ c..b*
 

Sample Output
16 -1
 

Author
LL
 
bfs,用了一个分层图的概念,其实就是把拿到了那些钥匙这个状态给压缩起来,这样同一点在每一个种状态下只能走一次,

#include<bits/stdc++.h>
using namespace std;
char mapp[30][30];
int book[1030][30][30];
struct node
{
	int now,step,x,y;
};
int n,m,T;
int check(node t)
{
	if(t.x<0||t.x>=n||t.y<0||t.y>=m||mapp[t.x][t.y]=='*')
	return 1;
	return 0;
}
int ne[4][2]={-1,0,1,0,0,1,0,-1};
int bfs(node beginn)
{
	memset(book,0,sizeof(book));
	queue<node>q;
	book[0][beginn.x][beginn.y]=1;
	q.push(beginn);
	node re,pe;
	while(!q.empty())
	{
		pe=q.front();
		q.pop();
		if(mapp[pe.x][pe.y]=='^')
		{
			if(pe.step+1<=T)
			{
				return pe.step;
			}
			else
			return -1;
		}
		if(pe.step>T)
		return -1;
		for(int i=0;i<4;i++)
		{
			re=pe;
			re.x+=ne[i][0];
			re.y+=ne[i][1];
			if(check(re))
			continue;
			if(mapp[re.x][re.y]<='J'&&mapp[re.x][re.y]>='A')
			{
				int tt=mapp[re.x][re.y]-'A';
				if(((1<<tt)&re.now)==0)
				{
					continue;
				}
			}
			else if(mapp[re.x][re.y]<='j'&&mapp[re.x][re.y]>='a')
			{
				int tt=mapp[re.x][re.y]-'a';
				re.now|=(1<<tt);
			}
			if(book[re.now][re.x][re.y])
                continue;
			re.step++;
			book[re.now][re.x][re.y]=1;
			q.push(re);
		}
	}
	return -1;
}
int main()
{
	int i,j;
	while(cin>>n>>m>>T)
	{
		for(i=0;i<n;i++)
		{
			scanf("%s",mapp[i]);
		}
		for(i=0;i<n;i++)
		{
			for(j=0;j<m;j++)
			{
				if(mapp[i][j]=='@')
				{
					node tt;
					tt.x=i;
					tt.y=j;
					tt.step=0;
					tt.now=0;
					printf("%d\n",bfs(tt));
				}
			}
		}
	}
	return 0;
}




openclaw 保姆级部署与核心玩法解析:国产DeepSeek模型 + 飞书 OpenClaw是一款功能强大的开源AI个人助理,支持全平台私有化部署,数据完全本地掌控。它不仅可通过聊天窗口直接操控电脑(安装软件、创建项目),还支持接入飞书等主流通讯工具,化身24小时在线的智能助理。本文提供了从零开始的详细部署教程,涵盖基础安装、模型配置(如GLM-4、DeepSeek)到飞书集成的完整实战指南,助你将这款“核动力”AI助手快速融入日常工作流。 阅读详情

相关推荐

在 Dify 平台部署一个 知识库问答(KBQA) 工作流

加强检索约束,Prompt 加限制(“仅基于知识库回答”):启用缓存,使用轻量级 LLM(如 Mistral-7B)(OpenAI Embedding、M3E、BGE等)(支持 PDF/TXT/Markdown/Word)(GPU/CPU 资源,用于向量数据库和模型推理)企业内部文档(PDF/Word/Excel)网页爬取数据(Markdown/HTML)分块大小(太小→信息碎片化,太大→噪声多)相似度阈值(太高→漏检,太低→噪声多)(是否返回正确文档)结构化数据(数据库/API)

井底小蛙的博客 1520

HDOJ1429(胜利大逃亡(续))

胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 611Accepted Submission(s): 213 Problem Description Ignatius再次被魔王抓走了(搞不懂他咋这...

weixin_30711917的博客 2340

信号完整性仿真SI之Cadence Sigrity SPEED2000_眼图仿真(四)

今天给大家分享一个仿真的操作流程,是关于Cadence Sigrity SPEED2000的时域波形仿真和眼图仿真。我们会经常看见硬件工程师调试示波器上的一些信号的波形变化,其实这些也可以通过仿真电路的搭建来做出投板前的仿真,来优化走线,以减少版本的迭代次数。如果要和实际的信号保持一致,就要求仿真设置的参数和实际的参数保持一致,这也是仿真的重点和难点。下面先让我们了解一下Cadence Sigrity SPEED2000时域仿真的操作流程: 1.仿真模式选择与文件导入 选择Cadence Sigrity下的

刘小同学的博客 1万+

Educational Codeforces Round 79 (Rated for Div. 2) F. New Year and Handle Change

传送门 题意(转换一下): 给出一个01串,可以最多选择k个l长度的子串,全部变为0或1。求min(size 0,size 1) (1≤n,k,l≤106,l≤n)(1 \le n, k, l \le 10^6, l \le n)(1≤n,k,l≤106,l≤n) 思路: 这道题如果可以选择越多的子串,我们可以虽然可以得到更好的值(即最小化答案),选得越多,根据贪心来看,我们最小化的增速也会越小,也就是说我们k越大,答案虽然在优化,但是优化的增速会越小,也就是说形成了一个凸函数,k是有限制的,这就想到了wq

xyl99520的博客 176

量子磁场测量技术在生物磁场成像领域的应用现状与产业趋势

首先对量子磁场测量技术的发展进行了简述,然后介绍了量子磁场测量技术在生物磁场成像领域的应用,最后分析了量子磁场测量技术的两大重要应用方向(心磁图仪和脑磁图仪)及其产业现状和未来发展趋势。美国普林斯顿大学在《自然》上公布了目前人类磁场测量灵敏度最高的基于量子磁场测量技术的零场原子磁力计。拥有巨大的发展潜力及庞大的市场空间。因此其数千万元的高昂售价及每年数百万元的超导维护成本限制了超导式心磁图仪的发展和临床应用。而基于超导式脑磁图仪的癫痫、阿尔兹海默症、抑郁症等脑疾病患者的临床研究也取得丰富的研究成果。

罗伯特技术屋 1530

同济土木非0基础三个月跨考复旦计算机攻略

跨考cs攻略前言我cs专业课如何复习How to start from zero简历其他复试 前言 建议多去工地/化工厂涡轮增压一下 我 同济土木gpa 3.2/5 挂科 * n 辣鸡项目 * n (padding 简历) 21考复旦计算机专硕 10月-12月 学习+复习 总分392 政治 68;背肖4即可 英语二 78 裸考,(高考英语140+);做点真题,建议据自己情况准备 数学二 142 ;(高考数学接近满分);做真题+模拟题,每天写一张试卷 专业课 104 ,考试生病了,下文展开。 cs专业课

piglake的博客 7238

2R. 胜利大逃亡

#include<bits/stdc++.h> using namespace std; struct people { int x,y,z,time; }pp,qq; int K,A,B,C,T,ans; int square[55][55][55]; int Vis[55][55][55]; int dir[6][3]={{-1,0,0},{1,0,0},{0,-1,0},{0,1,0},{0,0,-1},{0,0,1}}; int bfs(int x,int y,int z...

DYNAZ的博客 268

为什么你的XGBoost多分类效果不如预期?可能是这5个参数没调对

本文深度剖析了XGBoost模型在处理多分类问题时效果不佳的五大关键参数陷阱。针对多分类问题的独特性,文章提供了max_depth、learning_rate、采样参数及正则化参数等核心参数的量化调整策略与诊断方法,帮助开发者精准调优,有效提升模型在各类别上的均衡性能与泛化能力。

weixin_29182481的博客 296

九度OJ 教程86 广度优先搜索解决迷宫问题之《胜利大逃亡》

题目地址:http://ac.jobdu.com/problem.php?cid=1040&pid=85 无费地址:http://acmclub.com/problem.php?id=1209  //九度OJ 教程86广度优先搜索迷宫之《胜利大逃亡》 //http://ac.jobdu.com/problem.php?cid=1040&pid=85 #include #include

DNA的DFA 815

视觉SLAM的前段后端最详细的梳理(硕士入门知识框架更新)

文章目录视觉SLAM的组成结构视觉里程计(VO)-特征点法 -构建稀疏点云地图-直接法 -构建稠密或半稠密的地图 --需要使用 RGB-D 传感器视觉里程计--总结:SLAM 后端研究滤波器法非线性优化后端方式的差异(有五种优化方式):单目视觉里程计的初始化:运动估计:半直接法运动估计的优化方案:关于解决累计误差的一些方法:关键帧的建图及后端优化:特征的深度估计:图优化的后端研究:视觉与IMU融合的分类:视觉与IMU的融合的优势:存在的问题:优秀的开源: 视觉SLAM的组成结构 视觉里程计(VO) -特

DC 6812

Vue3多级路由缓存失效的深度解析与实战解决方案

本文深度解析了Vue3项目中多级路由嵌套下keep-alive缓存失效的根本原因,并提供了三种实战解决方案。通过剖析组件树、router-view与keep-alive的协作机制,揭示了缓存无法穿透多层router-view的技术本质。文章对比了路由扁平化重构、状态管理配合路由守卫以及使用社区插件等方案的优缺点与适用场景,为开发者解决这一常见难题提供了清晰的选型指导。

weixin_29001423的博客 271

迷宫问题c程序

迷 宫问题自己写的迷宫程序,新手,有很多不足之处,希望通过这种方式多多学习提高问题描述迷宫游戏有多种。有的迷宫只要你能走出来就算成功;有的是要求不但能走出来,而且走的步数越少得分越高。为了能得到高分,你肯定在路线的选择上下功夫,尽量用最少的步数走出迷宫。 现有一个迷宫,可以用M行N列的矩阵来描述,迷宫中有以下6种标志: (1)$ :代表你所在的初始位置; (2)& :迷宫的出口位置; (3)

dmgy110的博客 2175

2023最新多文明策略手游《万国觉醒内购版》最新整理Linux商业手工服务端+安卓+详细搭建教程

2023最新多文明策略手游《万国觉醒内购版》最新整理Linux商业手工服务端+安卓+详细搭建教程。源码内置详细搭建教程,感兴趣可自行下载。

百创科技 1715

hdu1429胜利大逃亡(续)(状态压缩+bfs)

题目链接: 啊哈哈,点我点我 题意及思路 两个状态压缩+bfs的题,两个题其实是一样的,所以我讲一个。。。就选1429吧。。 最开始我以为跟普通的bfs一样,所以直接写了一个朴素的bfs,一跑,前两组数据对了,但是第三组不对,一看,走过的还可以走啊,所以不能标记,结果我的bfs乱改,最后 毫无疑问改成了死循环。所以看题解。。。 思路:因为有10中不同的钥匙,每种都有两种状态,所以结合

大洋深处 2199

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

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

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

HDU-1429 胜利大逃亡(续)

HDU 1429 胜利大逃亡(续) Ignatius再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)…… 这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带锁的门,钥匙藏在地牢另外的某些地方。刚开始Ignatius被关在(sx,sy)的位置,离开地牢的门在(ex,ey)的位置。Ignatius每分钟只能从一个坐标走到相邻四个坐标中的其中一个。魔王每t分钟回地牢视察一次...

你呢的博客 1314

数学建模模型总结

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

HDU - 1429 - 胜利大逃亡(续)

胜利大逃亡(续)题目传送:HDU - 1429 - 胜利大逃亡(续)基础广搜题,注意是用位运算来判断的是否有钥匙的。少写一个字母找了好久的bug。。好久的bug。。的bug。。bug。。gAC代码:#include <map> #include <set> #include <cmath> #include <deque> #include <queue> #include <stack> #inc

Never say never 1163

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

hdu 1429胜利大逃亡(续) / sdut 2193 救基友记3(BFS)

http://acm.hdu.edu.cn/showproblem.php?pid=1429 做了热身赛http://blog.youkuaiyun.com/u013081425/article/details/21740001 之后发现这道题好水,之前怎么没刷到呢。。 同样标记数组增加一维,标记到某一点时他拥有钥匙的状态,因为有10种钥匙,所以mark[][][1 #include #inc

1502

bfs专题之HUD 1429 胜利大逃亡(续)

http://acm.hdu.edu.cn/showproblem.php?pid=1429 第一次做 感觉有点困难 毕竟接触 BFS不久 两点值得学习 1,记录10把钥匙的状态 即vis[][][1024]的 作用   1024  (2^10)中状态  。。。状态   学长 屡次强调 且 屡次解释 的一个 东西 每种状态只能走一个点一次  这是和 最简单迷宫的 区别  。。 2,位

Napoleon的专栏 627

胜利大逃亡(续) HDU - 1429

胜利大逃亡(续) HDU - 1429

weixin_29216119的博客 293

Syins写的bfs例题——胜利大逃亡(续)HDU1429

胜利大逃亡(续) Time limit2000 ms Memory limit32768 kB Ignatius再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)…… 这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带锁的门,钥匙藏在地牢另外的某些地方。刚开始Ignatius被关在(sx,sy)的位置,离开地牢的门在(ex,ey)的位置。Ignatius每分钟...

weixin_45676801的博客 324

HDU 1429 胜利大逃亡(续) (bfs+状态压缩)

胜利大逃亡(续) 题目链接: http://acm.hust.edu.cn/vjudge/contest/71151#problem/D Description Ignatius再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)…… 这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带锁的门,钥匙藏在地牢另外的某些地方。刚开始Ignatius被关在...

dituonian8372的博客 158

HDU1429 胜利大逃亡(续)

http://acm.hdu.edu.cn/showproblem.php?pid=1429学习位压缩很好的一道题,因为只有10把钥匙,那么可以把10钥匙压缩二进制,比如1000就表示身上只要第4把钥匙的状态,110表示带有第2把和第3把钥匙,那么要判断当前的钥匙串有没有能打开当前门钥匙,那么就只要一个&运算就可以,因为11101110&00100000==00100000 这样就说明那一把钥

3081

HDU 1429 胜利大逃亡(续)(bfs+状态压缩,很经典)

&#13; 传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1429 胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10648    Accepted ...

Y先森0.0 207

hdu 1429 胜利大逃亡(续)

hdu 1429 胜利大逃亡(续)         这是一道广搜题. 刚开始看有点思路, 但是实现起来需要定义一些相关的结构体,比较麻烦.尤其是怎么处理拿到钥匙和开门......         下面这种方法能为下次做类似的题提供更多的想法.         后来看到了某大神的一种更好的办法来处理钥匙和开门的问题, 那就是位运算来模拟拿钥匙和开门. 看了一篇思路就很清晰了.

happen_zhang 1597

HDU 1429 胜利大逃亡(续) (BFS+二进制)

胜利大逃亡(续) Crawling in process... Crawling failed Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 1429 Description Ignati

LiQiyao的博客 420

BFS 题目整理 POJ2251、HDU1429、POJ3182、USACO06、UVA10047 The Monocycle

BFS POJ 2251 Dungeon Master 题意 有一个三维监狱,每一步可以向东,向西,向北,向南,向上,向下移动 ‘S’为起点,'E’为出口,’#‘为墙,’.'为路 分析 找到起点,直接bfs即可 代码 #include <iostream> #include <cstdio> #include <algorithm> #include <q...

qcwlmqy的博客 215
上一篇: A - A Simple Problem with Integers POJ - 3468 线段树
下一篇: qduoj 140 题目6 142 ycb的ACM进阶之路
jerans
博客等级 码龄10年 54粉丝 255原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值