【FZUOJ 1046】Tempter of the Bone(DFS加奇偶剪枝)

本文介绍了一个迷宫逃脱问题,通过深度优先搜索(DFS)结合剪枝策略解决狗仔如何在限定时间内找到出口的问题。该算法考虑了迷宫的大小、门开启的时间及狗仔的移动限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Accept: 623    Submit: 1734
Time Limit: 1000 mSec    Memory Limit : 32768 KB

 Problem Description

The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze began to shake, and the doggie could feel the ground sinking. He realized that the bone was a trap, and he tried desperately to get out of this maze.

The maze was a rectangle with sizes N by M. There was a door in the maze. At the beginning, the door was closed and it would open at the T-th second for a short period of time (less than 1 second). Therefore the doggie had to arrive at the door on exactly the T-th second. In every second, he could move one block to one of the upper, lower, left and right neighboring blocks. Once he entered a block, the ground of this block would start to sink and disappear in the next second. He could not stay at one block for more than one second, nor could he move into a visited block. Can the poor doggie survive? Please help him.


 Input

The input consists of multiple test cases. The first line of each test case contains three integers N, M, and T (1 < N, M < 7; 0 < T < 50), which denote the sizes of the maze and the time at which the door will open, respectively. The next N lines give the maze layout, with each line containing M characters. A character is one of the following:

'X': a block of wall, which the doggie cannot enter; 
'S': the start point of the doggie; 
'D': the Door; or
'.': an empty block.

The input is terminated with three 0's. This test case is not to be processed.

 Output

For each test case, print in one line "YES" if the doggie can survive, or "NO" otherwise.

 Sample Input

4 4 5S.X...X...XD....3 4 5S.X...X....D0 0 0

 Sample Output

NOYES

 Source

ZOJ 2110

我们如果想从(x,y)走到终点(dx,dy),最短的距离应当为abs(dx-x)+abs(dy-dy),假设这个距离为D1,如果存在D2能走到终点,那么D2的奇偶性一定和D1相同,因为起点相同,终点相同如果在横轴上面加1,那么在纵轴上面也应该加1,所以我们在深搜之前可以先进行剪枝一下。这样时间复杂度会降低很多。

#include<iostream>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace std;
char maze[100][100];
int n,m,T;
int flag;
int sx,sy,dx,dy;
int vis[100][100];
int dir[4][2] = {{1,0},{0,1},{-1,0},{0,-1}};
void dfs(int x,int y,int t)
{
	int nx,ny;
	if(x==dx&&y==dy&&t==T)
	{
		flag=1;
		return ;
	}
	if(x<0&&x>=n||y<0||y>=m) return ;
	int temp1=abs(dx-x)+abs(dy-y);
	int temp2=abs(T-t);
	int temp=abs(temp1-temp2);//剪枝 
	if(temp&1) return ;
	for(int i=0;i<4;i++)
	{
		nx=x+dir[i][0];
		ny=y+dir[i][1];
		if(maze[nx][ny]!='X'&&!vis[nx][ny]&&nx>=0&&nx<n&&ny>=0&&ny<m)
		{
			vis[nx][ny]=1;
			dfs(nx,ny,t+1);
			if(flag) return ;
			vis[nx][ny]=0;//回溯 
		}
	}
	
}
int main()
{
	while(cin>>n>>m>>T)
	{
		flag=0;
		memset(vis,0,sizeof(vis));
		if(n+m+T==0) break;
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<m;j++)
			{
				cin>>maze[i][j];
			}
		}
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<m;j++)
			{
				if(maze[i][j]=='D')
				{
					dx=i;
					dy=j;
				}
				else if(maze[i][j]=='S')
				{
					sx=i;
					sy=j;
					vis[i][j]=1;
				}
			}
		}
		dfs(sx,sy,0);
		if(flag) cout<<"YES"<<endl;
		else cout<<"NO"<<endl;
	}
	return 0;
}
内容概要:本文深入解析了扣子COZE AI编程及其详细应用代码案例,旨在帮助读者理解新一代低门槛智能体开发范式。文章从五个维度展开:关键概念、核心技巧、典型应用场景、详细代码案例分析以及未来发展趋势。首先介绍了扣子COZE的核心概念,如Bot、Workflow、Plugin、Memory和Knowledge。接着分享了意图识别、函数调用链、动态Prompt、渐进式发布及监控可观测等核心技巧。然后列举了企业内部智能客服、电商导购助手、教育领域AI助教和金融行业合规质检等应用场景。最后,通过构建“会议纪要智能助手”的详细代码案例,展示了从需求描述、技术方案、Workflow节点拆解到调试与上线的全过程,并展望了多智能体协作、本地私有部署、Agent2Agent协议、边缘计算插件和实时RAG等未来发展方向。; 适合人群:对AI编程感兴趣的开发者,尤其是希望快速落地AI产品的技术人员。; 使用场景及目标:①学习如何使用扣子COZE构建生产级智能体;②掌握智能体实例、自动化流程、扩展能力和知识库的使用方法;③通过实际案例理解如何实现会议纪要智能助手的功能,包括触发器设置、下载节点、LLM节点Prompt设计、Code节点处理和邮件节点配置。; 阅读建议:本文不仅提供了理论知识,还包含了详细的代码案例,建议读者结合实际业务需求进行实践,逐步掌握扣子COZE的各项功能,并关注其未来的发展趋势。
标题基于Django+Vue的双相情感障碍交流平台研究AI更换标题第1章引言介绍双相情感障碍交流平台的背景、意义、研究现状以及论文的研究方法和创新点。1.1研究背景与意义阐述双相情感障碍交流平台的重要性和实际需求。1.2国内外研究现状分析国内外在双相情感障碍交流平台方面的研究进展。1.3研究方法与创新点介绍论文采用的研究方法和平台的创新之处。第2章相关理论技术介绍Django、Vue以及双相情感障碍相关理论知识。2.1Django框架概述简述Django框架的特点、优势及其在Web开发中的应用。2.2Vue框架概述阐述Vue框架的核心思想、特点及其在前端开发中的应用。2.3双相情感障碍理论知识介绍双相情感障碍的基本概念、症状表现及其治疗方法。第3章平台需求分析与设计详细分析用户需求,设计双相情感障碍交流平台的整体架构和功能模块。3.1用户需求分析通过调研了解用户需求,为平台设计提供参考。3.2平台整体架构设计根据用户需求,设计平台的整体架构和技术路线。3.3功能模块设计详细介绍平台各个功能模块的设计思路和实现方法。第4章平台实现与测试阐述双相情感障碍交流平台的实现过程,包括前端和后端的实现,以及平台的测试。4.1前端实现利用Vue框架实现平台的前端界面和交互功能。4.2后端实现采用Django框架实现平台的后端逻辑和数据处理功能。4.3平台测试与优化对平台进行全面测试,发现并解决潜在问题,优化平台性能。第5章平台应用与评价将双相情感障碍交流平台应用于实际场景,并对其进行综合评价。5.1平台应用情况介绍平台在实际应用中的情况,包括用户反馈和使用效果。5.2平台评价指标与方法确定平台的评价指标和方法,对平台进行全面评估。5.3评价结果与分析根据评价指标和方法,得出平台的评价结果,并进行详细分析。第6章结论与展望总结论文的研究成果,分析双相情感障碍交流平台的优缺点,并展望未来的研
资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 安捷伦IO Libraries Suite 15.5是由安捷伦科技公司推出的一款专业软件工具,广泛应用于科学研究、工程开发和数据采集等领域。该版本专为Windows XP系统设计,旨在满足仍在使用XP系统的用户需求。以下是该套件的主要功能、使用场景及研究开发应用的详细介绍。 仪器控制:该套件的核心功能是通过GPIB、USB、以太网等多种接口,实现对安捷伦品牌仪器设备(如示波器、逻辑分析仪、频谱分析仪等)的远程操作。 驱动程序支持:包含大量驱动程序,覆盖安捷伦广泛的硬件产品线,确保用户能轻松与不同仪器通信。 数据采集与处理:提供数据采集工具,支持实时数据获取、存储和分析,便于用户管理实验数据。 编程接口:支持VISA、Visual Basic、C++、LabVIEW等多种编程语言,允许用户自定义仪器控制逻辑,实现自动化测试和测量。 教育实验室:在高校物理、电子、通信等实验室,该套件可帮助学生高效进行实验操作。 产品研发:工程师在产品开发阶段,可利用该套件快速验证原型,测试性能指标。 生产测试:在生产线上,可通过自动化脚本控制多台仪器进行批量测试,提高生产效率。 信号分析:在电子工程领域,该套件可与安捷伦频谱分析仪配合,进行复杂信号分析和频谱监测。 嵌入式系统测试:在嵌入式系统开发中,可用于调试硬件接口,验证系统功能。 软件定义无线电(SDR):在SDR项目中,该套件可提供实时数据采集和处理能力,用于信号接收和发送控制。 该版本虽然专为Windows XP设计,但随着操作系统的发展,用户可能需要升级到更高版本以适应新环境。需要注意的是,部分较新的安捷伦仪器可能不再支持XP系统,因此在选择仪器时需谨慎。尽管如此,安捷伦IO Libraries Suite 15.5仍是一个强大且全面的工具,尤
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值