飞跃原野---1124

飞越原野(广搜) 解决飞越原野的方法,用的是图的广度搜索bfs 立即下载

飞跃原野

Time Limit: 5000 ms Memory Limit: 65536 KiB
Problem Description
勇敢的法里奥出色的完成了任务之后,正在迅速地向自己的基地撤退。但由于后面有着一大群追兵,所以法里奥要尽快地返回基地,否则就会被敌人逮住。

终于,法里奥来到了最后的一站:泰拉希尔原野,穿过这里就可以回到基地了。然而,敌人依然紧追不舍。不过,泰拉希尔的地理条件对法里奥十分有利,众多的湖泊随处分布。敌人需要绕道而行,但法里奥还是决定找一条能尽快回到基地的路。
 
假设泰拉希尔原野是一个m*n的矩阵,它有两种地形,P表示平,L表示湖泊,法里奥只能停留在平地上。他目前的位置在左上角(1,1)处,而目的地为右下角的(m,n)。法里奥可以向前后左右4个方向移动或飞行,每移动1格需要1单位时间。而飞行的时间主要花费在变形上,飞行本身时间消耗很短,所以无论一次飞行多远的距离,都只需要1单位时间。飞行的途中不能变向,并且一次飞行最终必须要降落到平地上。当然,由于受到能量的限制,法里奥不能无限制飞行,他总共最多可以飞行的距离为D。在知道了以上的信息之后,请你帮助法里奥计算一下,他最快到达基地所需要的时间。
Input
第一行是3个整数,m(1≤m≤100),n(1≤n≤100),D(1≤D≤100)。表示原野是m*n的矩阵,法里奥最多只能飞行距离为D。接下来的m行每行有n个字符,相互之间没有空格。P表示当前位置是平地,L则表示湖泊。假定(1,1)和(m,n)一定是平地。
Output
一个整数,表示法里奥到达基地需要的最短时间。如果无法到达基地,则输出impossible。
Sample Input
4 4 2
PLLP
PPLP
PPPP
PLLP
Sample Output
5
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int book[110][110][110];
int next[5][2]= {{0,1},{0,-1},{1,0},{-1,0}};
char a[110][110];
struct node
{
    int x,y; //记录当前坐标 
    int sum,d;  //记录时间,剩余可飞行距离
} q[10005];

void bfs(int n,int m,int d)
{
    int head=0,tail=0,ty,tx,i,j;
    q[tail].x=0;
    q[tail].y=0;
    q[tail].sum=0;
    q[tail].d=d;
    book[q[tail].x][q[tail].y][d]=1;
    tail++;
    while(head<tail)
    {
        for( i=0; i<4; i++)  //枚举4个方向的情况
        {
            tx=q[head].x+next[i][0];
            ty=q[head].y+next[i][1];
            if(tx<0&&tx>=n&&ty<0&&ty>=m) continue;
            else
            {
                if(a[tx][ty]=='P'&&!book[tx][ty][q[head].d])
                {
                    q[tail].sum=q[head].sum+1;
                    q[tail].x=tx;
                    q[tail].y=ty;
                    q[tail].d=q[head].d;
                    book[q[tail].x][q[tail].y][q[tail].d]=1;
                    tail++;
                }
            }
        }
        for( j=2; j<=q[head].d; j++)  //枚举飞行2格、3格···一直到最大剩余飞行距离的情况
        {
            for( i=0; i<4; i++)
            {
                tx=q[head].x+next[i][0]*j;
                ty=q[head].y+next[i][1]*j;
                if(tx<0&&tx>=n&&ty<0&&ty>=m) continue;
                else
                {
                    if(a[tx][ty]=='P'&&!book[tx][ty][q[head].d-j])
                    {
                        q[tail].sum=q[head].sum+1;
                        q[tail].x=tx;
                        q[tail].y=ty;
                        q[tail].d=q[head].d-j;
                        book[q[tail].x][q[tail].y][q[tail].d]=1;
                        tail++;
                    }
                }
            }
        }
        if(q[head].x==n-1&&q[head].y==m-1)
        {
            printf("%d\n",q[head].sum);
            return ;
        }
        head++;
    }
    printf("impossible\n");
    return ;
}

int main()
{
    int n,m,d,i;
    scanf("%d%d%d",&n,&m,&d);
    memset(book,0,sizeof(book));
    for(i=0; i<n; i++)
    {
        scanf("%s",a[i]);
    }
    bfs(n,m,d);
    return 0;
}

飞越原野问题 利用广度优先搜索法实现找出N*N阶原野最短时间算法。Java实现 立即下载

相关推荐

【AI智能体】图像处理-生成营销 Banner 图

生成营销 Banner 图是一款用于制作营销图片的智能体,它可以根据指定的营销活动内容,快速生成活动 Banner 图片,降低活动运营成本、提高制图效率。

AI创变工坊,和1000万新个体创业者一起成长!愿大家都能跟上时代的洪流,不被社会淘汰,愿大家的生活工作收入都能具备竞争力! 1175

AOJ 866 飞越原野 【BFS】

题面:在一片广阔的土地上,有一个鸟人,他需要从这里穿过原野,回到基地。这片原野上,有平地(P)、有湖泊(L),因为鸟人可以飞,所以呢,有的时候,他可以飞越湖泊。现在,鸟人需要用最快的时间,回到基地。 假设原野是一个m*n的矩阵,有两种地形,用P和L表示。鸟人只能停留在平地上。他目前处在(1,1)这个位置,而目的地是(m,n)。他可以向上下左右四个方向移动,或者飞行。每移动一格需要1个单位时间。而飞

SCaryon的博客 3390

ROS2_Moveit2_Ur5e_Grasp项目详解(二):核心模块功能解析

本文深入解析了ROS2_Moveit2_Ur5e_Grasp项目的核心模块功能。重点阐述了OctoMap建图模块如何为机械臂提供实时三维环境感知,并详细介绍了Robotiq夹爪与MoveIt2的集成控制、UR5e的运动规划策略,以及视觉模块如何协同工作,最终实现从目标检测到动态抓取的完整闭环。

weixin_29254029的博客 113

飞跃原野(bfs)

用了一个3维标记数组,分别表示横纵坐标与剩余能量。然后用DFS搜索。 题目描述 勇敢的法里奥出色的完成了任务之后,正在迅速地向自己的基地撤退。但由于后面有着一大群追兵,所以法里奥要尽快地返回基地,否则就会被敌人逮住。 终于,法里奥来到了最后的一站:泰拉希尔原野,穿过这里就可以回到基地了。然而,敌人依然紧追不舍。不过,泰拉希尔的地理条件对法里奥十分有利,众多的湖泊随处分布。敌人需要

scf0920 2171

5分钟搞懂深度学习如何革新声源定位:从GCC-PHAT到DNN的实战对比

本文深入对比了深度学习与传统GCC-PHAT方法在声源定位领域的实战表现。通过具体实验数据,展示了DNN模型在强混响、低信噪比等复杂场景下,如何实现定位准确率的显著提升,并探讨了其数据驱动范式带来的鲁棒性优势与工程部署挑战。

3a9bq4r8t2y的博客 223

CODESYS做Modbus TCP主站踩坑记:从IP配置到数据映射的完整避坑指南

本文详细记录了在CODESYS中配置Modbus TCP主站的全过程,从IP配置到数据映射的常见问题及解决方案。重点解析了网络适配器选择、Slave ID误解、地址偏移陷阱等关键问题,并提供了实用的调试技巧和性能优化建议,帮助工业通信开发者高效避坑。

weixin_30642561的博客 625

1135. 飞越原野 (bfs) ★

#include #include #include using namespace std; int dir[4][2]={1,0,-1,0,0,1,0,-1}; int n,m,d,ans,g[102][102][102],head,tail; //g(xyz)表示到(x,y)后还可以飞z步的最优解 bool p[102][102],vis[102][102][102];

[Q]4EchoNStef 1797

MCGSPro动画部件实战:用文本分段实现智能报警提示(附工程文件)

本文详细介绍了在MCGSPro组态软件中,如何利用动画部件的文本分段功能,高效实现触摸屏上的智能报警提示。通过绑定整数变量作为索引,一个部件即可动态切换多种状态信息,解决了传统方法画面臃肿、维护繁琐的痛点。文章提供了从变量定义、部件配置到逻辑联动的完整实战教程,并分享了工程文件复用与性能优化技巧。

weixin_28347369的博客 168

这里将是我研究维基百科的基地

呵呵,如果在实验室访问速度可以的话,我打算把这里作为研究维基百科的基地了,欢迎大家来交流:)

ganlantree的专栏 1356

18|AI 辅助精准测试:让平台会解释、会总结、会推荐

本文介绍 AI 在精准测试平台中的落地方式,包括变更摘要、风险解释、补测建议和报告总结。测试开发工程师。Java 后端开发工程师。质量平台 / DevOps 平台建设者。想了解精准测试落地方法的技术负责人。从报告中提取变更文件、未覆盖行、推荐用例。拼成结构化 JSON。让 AI 生成 200 字质量摘要。把摘要展示在报告顶部。读完本文后,可以复制下面的 Prompt,让 AI 生成一个报告总结练习。你是一名 AI 应用开发专家和测试架构师。

专注 AI 精准测试平台实战落地,分享从代码 Diff 到回归决策的完整工程闭环。主张“先建数据链路,再上 AI 智能”,让测试从“靠经验”走向“基于风险”。 55

Android 13 Settings蓝牙列表卡顿问题排查及优化过程

此时我们的卡顿优化基本完成了,我们应该要考虑内存是否会泄漏,如果大家不知道哪些需要回收可以用leakcanary和android profiler进行内存检测,看代码有没有内存泄漏。

龚礼鹏的博客 2548

飞跃原野sdut1124

题目描述 勇敢的法里奥出色的完成了任务之后,正在迅速地向自己的基地撤退。但由于后面有着一大群追兵,所以法里奥要尽快地返回基地,否则就会被敌人逮住。终于,法里奥来到了最后的一站:泰拉希尔原野,穿过这里就可以回到基地了。然而,敌人依然紧追不舍。不过,泰拉希尔的地理条件对法里奥十分有利,众多的湖泊随处分布。敌人需要绕道而行,但法里奥还是决定找一条能尽快回到基地的路。假设泰拉希尔原野是一个m*n的矩阵,它

Loser 1164

SAP Joule Studio 全景解析

摘要:SAP Joule Studio是SAP Build平台中的低代码/专业级复合工作台,用于构建和管理企业专属的Joule智能体与技能。它支持通过拖拽和声明式编排实现跨系统任务自动化,与SAP及第三方系统集成。核心构件包括Agent(智能体)、Skill(技能)、Action(动作)和Project(项目)。Joule Studio强调企业级落地,与SAP Build Process Automation等工具协同,实现从设计到运行的全生命周期管理。典型应用场景包括供应链补货、财务关账和人力服务台自动化

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 397

SDUT 1124 飞跃原野 三维visit BFS 多途径多方向

飞跃原野 Time Limit: 5000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 勇敢的法里奥出色的完成了任务之后,正在迅速地向自己的基地撤退。但由于后面有着一大群追兵,所以法里奥要尽快地返回基地,否则就会被敌人逮住。 终于,法里奥来到了最后的一站:泰拉希尔原野,穿过这里就可以回到基地了。然而,敌人依然紧追不舍。不过,泰

colorfulshark 737

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SDUT 1124-飞跃原野(三维BFS)

飞跃原野 Time Limit: 5000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 勇敢的法里奥出色的完成了任务之后,正在迅速地向自己的基地撤退。但由于后面有着一大群追兵,所以法里奥要尽快地返回基地,否则就会被敌人逮住。 终于,法里奥来到了最后的一站:泰拉希尔原野,穿过这里就可以回到基地了。然而,敌人依然紧

Orz~~Orz 1920

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

sicily 1135 飞越原野(BFS)

  类似于迷宫问题,只是多了一个可以飞行的条件,并且无论飞行多远距离都只算一个单位时间,这里要注意判重数组visit的使用,第三维代表到当前点剩余可飞行的距离。因为如果之前访问过当前点并且剩余可飞行距离相同,则这种状态不用进入队列。#include <iostream>#include <queue>using namespace std;const int N ...

weixin_30471065的博客 186

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

飞跃平野(sdut1124)

http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1124飞跃原野Time Limit: 5000ms Memory limit: 65536K有疑问?点这里^_^题目描述勇敢的法里奥出色的完成了任务之后,正在迅速...

weixin_40525701的博客 77

SDUT OJ 1124 飞越原野 (三维BFS练习)

飞跃原野 Time Limit: 5000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 勇敢的法里奥出色的完成了任务之后,正在迅速地向自己的基地撤退。但由于后面有着一大群追兵,所以法里奥要尽快地返回基地,否则就会被敌人逮住。 终于,法里奥来到了最后的一站:泰拉希尔原野,穿过这里就可以回到基地了。然而,敌人依然紧

林下的码路 1558

SDUT OJ 1124 飞越原野 (三维BFS练习)

飞跃原野 Time Limit: 5000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 勇敢的法里奥出色的完毕了任务之后,正在迅速地向自己的基地撤退。但因为后面有着一大群追兵,所以法里奥要尽快地返回基地。否则就会被敌人逮住。 最终,法里奥来到了最后的一站:泰拉希尔原野。穿过这里就能够回到基地...

weixin_34274029的博客 288

SDUT 1124-飞跃荒野(三维BFS)

飞跃原野 Time Limit: 5000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 勇敢的法里奥出色的完毕了任务之后。正在迅速地向自己的基地撤退。但因为后面有着一大群追兵,所以法里奥要尽快地返回基地,否则就会被敌人逮住。 最终。法里奥来到了最后的一站:泰拉希尔原野,穿过这里就能够回到基地...

weixin_34066347的博客 171

寒假集训 P1161 飞越原野

JSOI2019冬令营,这题只会输出impossible骗10分,如今也算圆了当时的梦吧 读题发现:宽搜。因为要求最短时间,这和宽搜的长处很像,而且又是一个类似走迷宫的题。 标记当前状态:横坐标,纵坐标,目前已用的时间,余下的能量。 宽搜一定要记得判重! 开一个三维数组,定义为每一坐标(横加纵)和余下能量,如果已经出现过这种状态,那么就舍去。 Q:为什么不需要记录时间?A:因为能量不同,最后的总时...

qq_42636949的博客 484

飞跃原野(BFS,“飞行”限制,标记增维)

友情链接 飞越原野 Description 在一片广阔的土地上,有一个鸟人,他需要从这里穿过原野,回到基地。这片原野上,有平地(P)、有湖泊(L),因为鸟人可以飞,所以呢,有的时候,他可以飞越湖泊。现在,鸟人需要用最快的时间,回到基地。 假设原野是一个m*n的矩阵,有两种地形,用P和L表示。鸟人只能停留在平地上。他目前处在(1,1)这个位置,而目的地是(m,n)。他可以向上下左

Feynman1999的博客 3144
上一篇: One Bomb CodeForces - 699B
下一篇: 小鼠迷宫问题---1157
stanley610
博客等级 码龄9年 24粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值