http://acm.hdu.edu.cn/showproblem.php?pid=1010
题意:给出T,问第T秒是否能从S去到D
Sample Input
4 4 5
S.X.
..X.
..XD
....
3 4 5
S.X.
..X.
...D
0 0 0
Sample Output
NO
YES
这题有2个重要的剪枝要学习
剪枝前后对比
第一个是删掉奇偶剪枝后的情况
第二个是删掉步数剪枝后的情况
#include <iostream>
using namespace std;
char map[8][8];
int r, c, ttime, x2, y2; //ttime 是所给时间T,【r:行、c:列】
bool flag; //x2、y2是终点坐标
int x_move[4] = {0, 1, -1, 0};
int y_move[4] = {1, 0, 0, -1};
void dfs (int x, int y, int t) //t是走到当前坐标时的时刻
{
if (t > ttime) //超时
return ; //下面的tmp的意义:【剩余时间(ttime - t)(记为left)】与【从当前坐标走到终点所需时间( abs(x-x2) + abs(y-y2) )(记为win)】的差,如果tmp是奇数,说明left与win的奇偶性不同!也就是说在第T秒时,不可能从当前坐标走到终点!
int tmp = ttime - t - abs(x-x2) - abs(y-y2);
if (tmp < 0 || tmp & 1) //奇偶剪枝,非常重要,很抽象 Orz...
return ;
for (int i = 0; i < 4; i++)
{
int tx = x + x_move[i];
int ty = y + y_move[i];
if (tx < 0 || ty < 0 || tx >= r || ty >= c)
continue;
if (map[tx][ty] == 'D' && t + 1 == ttime)//到达终点且该时刻t+1为所给时间,即成功到达
{
flag = true;
return ;
}
if (map[tx][ty] == '.')
{
map[tx][ty] = 'X'; //已走格子变成墙,根据题意,已走格子不可再走
dfs (tx, ty, t+1);
if (flag) //成功
return ;
map[tx][ty] = '.'; //回溯
}
}
}
int main()
{
int i, j, x1, y1, empty;
while (scanf ("%d%d%d", &r, &c, &ttime) != EOF)
{
if (!r && !c && !ttime)
break;
empty = 0;
for (i = 0; i < r; i++)
{
scanf ("%s", map[i]);
for (j = 0; j < c; j++)
{
if (map[i][j] == 'S') //找到起点的坐标
x1 = i, y1 = j;
if (map[i][j] == 'D') //找到终点的坐标
x2 = i, y2 = j;
if (map[i][j] == '.') //计算总的可能行走的步数
empty++;
}
}
if (empty + 1 < ttime) //步数剪枝,常识,可行步数小于总时间,在T时刻肯定不可走到终点
{
puts ("NO");
continue;
}
flag = false;
dfs (x1, y1, 0);
if (flag)
puts ("YES");
else puts ("NO");
}
return 0;
}

- 大小: 23.3 KB
分享到:
相关推荐
* 题目1010:Tempter of the Bone,涉及到递归搜索的概念。 * 题目1016:Prime Ring Problem,涉及到递归搜索的概念。 * 题目1026:Ignatius and the Princess I,涉及到完全搜索的概念。 2. 图的遍历:深度优先...
例如,"HDU1010 Tempter of the Bone.cpp"可能就是利用DFS解决了一种寻找最短路径或解谜的问题。 另一方面,广度优先搜索(BFS)则是一种从根节点开始,逐层搜索直至找到目标的算法。BFS通常用于找出图中两个节点的...
Delphi 12.3控件之数据库开发基础课程SQL学习01-认识Navicat SQL工具,创建数据库和表.rar
本教学质量评价系统采用的数据库是Mysql,使用JSP技术开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 通过标签分类管理等方式,实现管理员;个人中心、公告信息管理、学院管理、学生管理、教师管理、督导管理、教师信息管理、学生评教管理、督导评教管理,学生;个人中心、公告信息管理、教师信息管理、学生评教管理,督导;公告信息管理、教师信息管理、督导评教管理,教师;个人中心、公告信息管理、教师信息管理、学生评教管理、督导评教管理等信息管理功能,从而达到对教学质量评价系统信息的高效管理。 关键词:教学质量评价系统 ,JSP技术,Mysql数据库
摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本社区养老服务系统就是在这样的大环境下诞生,其可以帮助使用者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此社区养老服务系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。社区养老服务系统有管理员,用户两个角色。管理员功能有个人中心,用户管理,服务种类管理,社区服务管理,服务预约管理,物品种类管理,物品信息管理,借用信息管理,归还信息管理,活动分离管理,社区活动管理,活动报名管理,疫情监控管理,物业收费管理,资讯中心管理,意见中心管理,系统管理。用户可以注册登录,查看管理员发布的各中心信息,可以服务预约,借用归还,活动报名,发布自己的疫情监控信息,查看物业收费等操作。社区养老服务系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为
内容概要:本文档详细阐述了南京林业大学本科毕业设计(论文)的具体撰写规范和要求,旨在确保毕业生能够提交高质量的设计(论文)。主要内容涵盖了从标题到附录的所有部分的撰写要求和格式标准,强调毕业设计(论文)不仅检验学生的学术能力,也是教学质量的关键指标。文中详细描述了每个组成部分的内容要求和书写格式,如标题、摘要、正文、结论、参考文献及附录的具体规定,并提供了具体的标准和操作流程。同时,针对不同类型的专业和学科提出了不同的撰写细则,确保规范适应广泛的学术背景和研究主题。 适合人群:即将进行本科毕业设计(论文)撰写的南京林业大学在校生及其指导教师。 使用场景及目标:① 帮助学生熟悉并掌握毕业设计(论文)的各项要求,从而确保顺利完成学业要求;② 教师利用该规范来审核和指导学生的工作。 阅读建议:该文档条理清晰,分类细致,因此读者应按步骤逐步理解和实践每一部分内容的要求和规范。同时,注意不同专业对于篇幅、内容重点等方面可能存在的特定调整。此外,对于涉及具体的排版和技术术语部分,建议配合实际案例进行练习。
内容概要:本作业指导书详细介绍了面向电气与机器人工程专业的计算机视觉模块课程(EL3105),旨在让学生深入理解和实现实时视频稳定化技术,特别是针对相机抖动补偿的方法。学生需要撰写报告并实现算法,解释选择的视频稳定方法以及具体的软件实现步骤。报告应涵盖背景介绍、解决方案详述、实验过程及其结论。提供的两个预录制视频将作为学生练习的数据集来测试视频稳定性。此外,学生需保证提交材料为原创,未使用任何AI工具辅助。 适合人群:适用于电气与机器人专业本科与研究生级别的学生,在掌握了基本图像特征提取匹配的基础上进一步探索高级应用技能。 使用场景及目标:帮助学员掌握关键点检测、稳健匹配、运动估计等基础知识的应用能力,同时培养他们独立解决实际问题的能力和编程技巧,特别是在视频序列处理方面。 其他说明:评估日期明确为2024年春季学期初开始,并于三月底截止。成绩构成包括对采用方法合理性阐述占30%,具体编码执行效果占40%,最后还有15%取决于成果评价,剩下则是对于报告形式的要求如语言表述规范性和引用文献准确性方面的情况打分。所有提交均在线进行并且需要符合特定格式要求。
Delphi 12.3控件之Delphi12TMS WEB Core 2.6.0.0 Beta Retail Setup for D12 (September 24, 2024).rar
内容概要:本文档详细介绍了蚂蚁金服移动开发平台(mPaaS)及其各个核心子组件的构成和优势,涵盖移动网关(MGS)、移动推送(MPS)、移动分析(MAS)、移动同步(MSS)、实时发布(MDS)以及智能投放(MCDP)。各组件在提供基础能力的前提下分别具有不同特点。移动开发平台致力于为企业提供高可用、高效、稳定的一站式解决方案,并在架构、安全、灵活性等方面有着独特之处。 适用人群:移动应用开发商、产品经理、运维和技术专家、项目管理者以及其他相关人员。 使用场景及目标:通过提供一站式的移动开发方案,帮助企业更好地开发、管理和运维移动应用,降低技术门槛和发展成本,促进应用创新与发展。各组件具体应用于移动应用开发过程的不同环节中: 1. 开放移动服务能力:MGS用于建立统一的通信接口,简化移动端与服务端对接; 2. 移动信息即时触达:MPS用于实现移动推送,提供个性化消息通知; 3. 应用数据采集与分析:MAS用于大规模移动数据分析,辅助决策; 4. 数据增量推送及更新同步:MSS用于保证业务信息同步; 5. 提供高效的版本管理:MDS用于应用实时部署; 6. 支持灵活精准的投放运营:M
个人交友网站的主要使用者分为管理员和用户,实现功能包括管理员:个人中心、用户管理、交友信息管理、线下活动管理、活动报名管理、系统公告管理、论坛交流、系统管理,用户:个人中心、交友信息管理、活动报名管理、我的收藏管理,前台首页;首页、交友信息、线下活动、系统公告、论坛信息、我的、跳转到后台、客服等功能。由于本网站的功能模块设计比较全面,所以使得整个个人交友网站信息管理的过程得以实现。 本系统的使用可以实现本个人交友网站管理的信息化,可以方便管理员进行更加方便快捷的管理。 关键词:个人交友网站;JSP技术;MYSQL数据库;
自动鱼类计数器是一种用于精确计算通过特定区域(如鱼梯或鱼道)的鱼类数量的装置。这些设备使用传感器、摄像头或声波信号等各种技术,在鱼群游过时对其进行检测和计数。这些信息对于监测鱼类种群、评估洄游模式以及评估鱼类通道结构的有效性非常重要。自动鱼类计数器有助于研究人员和渔业管理人员就鱼类物种的保护和管理工作做出明智的决策。 据QYResearch调研团队最新报告“全球自动鱼计数器市场报告2024-2030”显示,预计2030年全球自动鱼计数器市场规模将达到0.6亿美元,未来几年年复合增长率CAGR为4.9%。 根据QYResearch头部企业研究中心调研,全球范围内自动鱼计数器生产商主要包括Vaki (MSD Animal Health )、Flatsetsund Engineering AS、Calitri Technology、AGK Kronawitter GmbH、Faivre、Fischtechnik International、Guangzhou Yuandian Intelligent Technology Co、Aquascan、Fu-Chen Auto Technology
最后一个win7稳定运行版本,支持视频和pdf查看,因为之前下载的别人打包好的文件,可以播放视频,但是打开pdf会闪退,所以自己编译了一个,有需要的可以试试
C# 打印模板,打印设计检测报告
本医院预约挂号系统采用的数据库是Mysql,使用JSP技术开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 关键词:医院预约挂号系统 ,JSP技术,Mysql数据库 通过标签分类管理等方式,实现管理员;个人中心、用户管理、科室信息管理、医生管理、出诊信息管理、预约时间段管理、挂号预约管理、问题反馈管理、问题解答管理、系统管理,用户;个人中心、挂号预约管理、问题反馈管理、问题解答管理、我的收藏管理、医生;个人中心、出诊信息管理、挂号预约管理、问题反馈管理、问题解答管理,前台首页;首页、科室信息、出诊信息、公告信息、我的、跳转到后台等信息管理功能,从而达到对医院预约挂号系统信息的高效管理。
2025年3月CCF编程能力认证(C++)五级.pdf
yolo
轻量级可扩展网址导航系统V2.45完美去授权版 系统亮点 1、采用光年全新v5模板开发后台 2、后台内置8款主题色,分别是简约白、炫光绿、渐变紫、活力橙、少女粉、少女紫、科幻蓝、护眼黑 3、可管理无数引导页主题并且主题内可以进行不同的自定义设置,目前内置16套主题 持续增加中… 4、可单独开发各种插件,插件可进行自定义设置,目前内置七款实用插件 5、无需安装解压部署即可使用 6、数据管理包采用易航原创JsonDb数据包 7、主题内置神奇的$this语法 可快速开发并保留著作版权 8、对前台URL进行伪静态重写 对搜索引擎更加友好 9、内置硬防洪和硬防墙插件 告别域名忧虑 10、系统全开源 告别后门风险
277.基于51单片机的电压比较器【点阵,数码管,串口】(仿真).pdf
太阳能光伏系统的优化模型预测MPPT控制|MATLAB|Simulink 通过固定步长预测控制技术实现光伏阵列MPPT
LCOH成本计算参数+文献资料