POJ 2312 Battle City ——————BFS

手把手教你用示波器实测LVDS/CML信号:从波形解读到故障排查(附实测图) 本文详细介绍了如何使用示波器实测LVDS和CML信号,从波形解读到故障排查的全过程。涵盖差分探头选择、示波器配置、标准波形特征解读、眼图分析技巧以及高速信号捕获要点,帮助硬件工程师快速诊断和解决信号完整性问题。附实测图和案例,提升高速数字电路设计效率。 阅读详情

Language:Default
Battle City
Time Limit: 1000MSMemory Limit: 65536K
Total Submissions: 10110Accepted: 3364

Description

Many of us had played the game “Battle city” in our childhood, and some people (like me) even often play it on computer now. ![这里写图片描述](http://poj.org/images/2312_1.jpg)
What we are discussing is a simple edition of this game. Given a map that consists of empty spaces, rivers, steel walls and brick walls only. Your task is to get a bonus as soon as possible suppose that no enemies will disturb you (See the following picture). ![这里写图片描述](http://poj.org/images/2312_2.jpg)
Your tank can’t move through rivers or walls, but it can destroy brick walls by shooting. A brick wall will be turned into empty spaces when you hit it, however, if your shot hit a steel wall, there will be no damage to the wall. In each of your turns, you can choose to move to a neighboring (4 directions, not 8) empty space, or shoot in one of the four directions without a move. The shot will go ahead in that direction, until it go out of the map or hit a wall. If the shot hits a brick wall, the wall will disappear (i.e., in this turn). Well, given the description of a map, the positions of your tank and the target, how many turns will you take at least to arrive there?

Input

The input consists of several test cases. The first line of each test case contains two integers M and N (2 <= M, N <= 300). Each of the following M lines contains N uppercase letters, each of which is one of ‘Y’ (you), ‘T’ (target), ‘S’ (steel wall), ‘B’ (brick wall), ‘R’ (river) and ‘E’ (empty space). Both ‘Y’ and ‘T’ appear only once. A test case of M = N = 0 indicates the end of input, and should not be processed.

Output

For each test case, please output the turns you take at least in a separate line. If you can’t arrive at the target, output “-1” instead.

Sample Input

3 4
YBEB
EERE
SSTE
0 0

Sample Output

8

Source

POJ Monthly,鲁小石
—– BFS 简单题 —–
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
const int MAXN=309;
int n,m,stx,sty,edx,edy,ans;
char str[MAXN][MAXN];
bool vis[MAXN][MAXN];
int d[4][2]={0,1, 0,-1, 1,0, -1,0};
struct node{
    int x,y,step;
    node(){};
    node(int _x,int _y,int _step)
    {
        x=_x;y=_y;step=_step;
    }
    bool operator < (const node &b)const
    {
        return step>b.step;
    }
};

void bfs(int x,int y)
{
    memset(vis,0,sizeof(vis));
    priority_queue<node> que;
    node e1,e2;
    vis[x][y]=1;
    que.push(node(x,y,0));
    while(que.size())
    {
        e1=que.top();que.pop();
        if(str[e1.x][e1.y]=='T')
        {
            ans=e1.step;
            break;
        }
        for(int i=0;i<4;i++)
        {
            e2.x=e1.x+d[i][0];
            e2.y=e1.y+d[i][1];
            e2.step=e1.step+1;
            if(!vis[e2.x][e2.y] && 0<= e2.x && e2.x < n && 0 <= e2.y && e2.y <m && str[e2.x][e2.y]!='R' && str[e2.x][e2.y]!= 'S')
            {
                vis[e2.x][e2.y]=1;
                if(str[e2.x][e2.y]=='B') e2.step++;
                que.push(e2);
            }
        }
    }
}


int main()
{
    while(~scanf("%d %d",&n,&m)&&(n|m))
    {
        for(int i=0;i<n;i++)    scanf("%s",str[i]);
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
            {
                if(str[i][j]=='Y')
                {
                    stx=i;
                    sty=j;
                    break;
                }
            }
        ans=-1;
        bfs(stx,sty);
        printf("%d\n",ans);
    }
    return 0;
}

嵌入式调光控制库:轻量级软启/渐变/记忆逻辑实现 调光控制是智能照明系统的核心基础功能,涉及亮度调节、人机交互与电气安全多重需求。其底层原理依赖于对相位角或PWM占空比的精确时序控制,并需融合软启动、渐变过渡、状态记忆等工程化逻辑。这类轻量级调光行为逻辑层,不直接操作硬件寄存器,而是以确定性、无动态内存、可配置的方式封装用户意图到目标亮度值(0–100%)的映射过程,显著提升产品鲁棒性与跨平台复用能力。广泛应用于TRIAC交流调光、LED直流PWM驱动及DALI/Matter等智能照明协议网关中,尤其适合资源受限的Cortex-M系列MCU和FreeRTO 阅读详情

相关推荐

手把手教你用STM32F103的GPIO模拟MIPI RFFE协议(附完整代码与逻辑分析仪调试技巧)

本文详细解析了如何使用STM32F103的GPIO模拟MIPI RFFE协议,包括协议核心、硬件准备、时序模拟、寄存器操作及逻辑分析仪调试技巧。通过实战代码和波形分析,帮助工程师解决电平转换、奇校验处理等常见问题,提升通信稳定性与效率。

weixin_30292745的博客 284

【POJ】2312-Battle City (bfs,优先队列)

Battle City Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7805   Accepted: 2613 Description Many of us had played the game "Battle city" in our childhood

wyg1997 1070

PySpark 本地开发环境搭建与实践

本文详细介绍了 PySpark 本地开发环境的搭建过程,包括 JDK、Hadoop、Anaconda、PySpark 的安装以及 Pycharm 工程的创建。同时,深入讲解了代码编写、本地开发案例(如 WordCount、处理特殊分隔符、读取 hdfs 数据、获取外部变量)、Spark 程序的监控和 local 模式下结果文件数量问题等内容。通过掌握这些知识和技能,读者可以在 Windows 本地环境中高效地进行 PySpark 开发,处理大规模数据,解决实际业务中的数据分析和处理问题。

天冬忘忧的博客 3012

POJ 2312 Battle City 优先队列+BFS

相信坦克大战大家都玩过吧,本题就是根据这个游戏设计的。坦克要从起点(Y),到目的地(T),坦克不能通过钢墙(S),河(R),可以在空地在行走(E),射击破坏砖墙(B),射击砖墙时不行走且花费一个单位的时间,在空地上行走时也花费一个单位的时间。求坦克从起点到目的地最少花多少时间,不

Hackbuteer1的专栏 5532

大数据之数据抽取架构演变过程

而当时我们搭建的Flink集群是基于YARN进行资源管理和调度的,因为YARN中不仅仅包含着FLInk的资源,也有hive,zoozie,hdfs等等的资源,这样容易造成yarn资源的过度使用,容易引起整个底座的cpu以及内存的使用问题,经过排查,主要是由于FLink的使用资源引起的,所以后续就把Flink从整个集群中剥离出来,进行资源的隔离,最后Flink采用了StandAlone HA部署(但是这个目前还是存在问题,后续根据项目进行优化)'topic' = '表名',二、数据抽取架构的演变。

天道酬勤 867

解决UNITE数据库注释高unassigned率:手把手教你训练专属真菌分类器(含预训练模型分享)

本文针对使用UNITE数据库进行真菌ITS序列注释时出现的高未分配率问题,提供了详细的实战解决方案。通过对比vsearch直接注释与Naive Bayes分类器的原理差异,文章手把手指导读者在QIIME 2环境中训练专属分类器,包括数据准备、模型训练、参数优化及效果验证,并分享了预训练模型,旨在显著提升真菌群落分析的注释准确性和数据利用率。

weixin_29214199的博客 338

poj2312 Battle City bfs

http://poj.org/problem?id=2312 Battle City Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6903   Accepted: 2336 Description Many of us had played the

746

边缘计算与产业生态系统

目录 文章目录目录边缘计算产业参与者边缘计算产业生态系统 边缘计算产业参与者 边缘计算领域参与者众多,主流公司以打造生态优势为目标,基于自身服务层级向产业链上下两端进行拓展,目前市场主要参与者有: 系统集成商:在产业头部,具有广泛的能力,可以集成不同生态系统公司的产品,具有一定的全球性属性,在边缘计算领域大多由云服务商、电信运营商担任。 云服务商:具有领先的云技术优势与应用生态体系,同时拥有全球性资源布局与市场资源生态,并渴望成为边缘计算主导者。 电信运营商:具有边缘基础设施优势,以及不可替代的

烟云的计算 2103

poj2312Battle City BFS

题意: M行N列矩阵, 'Y'表示开始位置, 'T'表示目标位置, 从开始位置到目标位置至少需要走多少步,其中, 'S', 'R'表示不能走, 'B' 花费为2, 'E'花费为1. 思路:纯 BFS. 很久没写BFS, 刚写居然不知道从何下手... 1 #include <iostream> 2 #include <queue> 3 usi...

187

SAP BTP Trial 生命周期全解析:90 天试用、30 天活跃规则、Kyma 有效期与向 Free Tier 的顺滑迁移

摘要: SAP BTP免费试用账号(trial)提供90天有效期,需每30天登录一次保持活跃状态。Kyma运行时有效期仅14天,需特别注意重建。到期后数据不可恢复,建议将关键配置脚本化并保存。若需长期使用,可迁移至无时间限制的免费层(free tier)。文章详细拆解了试用生命周期规则,包括续期、删除机制,并针对CAP开发、集成套件和Kyma等场景提供实操建议,帮助用户规避常见误区,高效利用试用资源。(150字)

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

黑猫带你学UFS协议第23篇:UFS固件升级操作详解(FFU)

摘要:本文介绍了UFS固件更新(FFU)的实现方法与注意事项。根据UFS3.1 JEDEC协议,FFU通过write buffer命令(MODE=0Eh)下载FW固件,随后必须进行power cycle或硬件复位生效。文章详细阐述了FFU操作的10条规则,包括数据分片传输要求、寄存器访问限制等,同时指出协议未明确的厂商实现差异。关键寄存器包括bFFUTimeout、bDeviceFFUStatus和fPermanentlyDisableFwUpdate。

黑猫奥利奥的博客 1万+

POJ 2312 Battle City (BFS)

Description Many of us had played the game "Battle city" in our childhood, and some people (like me) even often play it on computer now. What we are discussing is a simple edition of this game. ...

HPU_LY的博客 313

H3LIS200DL三轴加速度传感器原理图设计,已量产(加速度传感器)

在最近的工业振动监测项目里,我们选了 ST 的 H3LIS200DL 做核心传感器 —— 这颗料的特点太契合场景了:±100g/200g 的大量程刚好覆盖设备冲击与振动的测量需求,10μA 的超低功耗能适配电池供电的边缘节点,0.5Hz 到 1kHz 的输出速率也足够抓准动态信号。下面结合实际画的原理图,拆解下这个硬件电路的设计思路。

不脱发的程序猿 336

poj 2312 Battle City-bfs

题目自己看吧:http://poj.org/problem?id=2312 代码:   #include #include #include #include #include #include #include #include using namespace std; #define INF 1000000001 struct Point{ int x,y;

桑榆 614

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

POJ 2312 Battle City(优先队列+BFS)

题目链接:http://poj.org/problem?id=2312 Battle City Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7085   Accepted: 2390 Description Many of us had playe

MummyDing's Blog 2491

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

poj2312——Battle City【BFS】

Battle City Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9931   Accepted: 3301 Description Many of us had played the game "Battle city" in ...

xiang_hehe的博客 378

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

[算法] BFS : poj 2312 Battle City 示例

纪念第一次用 “优先队列”, 第一次知道 “方向数组” ! BFS : 谁出队就找谁的邻接点访问之并入队!#include <iostream> #include <string> #include <cstring> #include <cstdlib> #include <cstdio> #include <...

anchang7456的博客 169

POJ 2312 Battle City bfs宽搜

类似"罗密欧与朱丽叶"那题,宽搜搞定。 Battle City Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5858   Accepted: 1934 Description Many of us had played the game "Battle city"

zck921031的专栏 839

poj 2312 Battle City bfs

简单bfs #include #include #include #include #include using namespace std; int n, m; struct node{ int x, y, t; }st; #define N 305 int dir[4][2] = { 1, 0, -1, 0, 0, 1, 0, -1 }; int sx, sy, ex, ey;

uuuuuu 538

POJ 2312 Battle City 优先多列+bfs

来源:http://poj.org/problem?id=2312 题意:题目背景就是小时候玩的坦克大战,求从起点到终点最少需要多少步。已知S和R是不能走得,E是空的,可以走,B是砖,只有打掉后才可以通过。 思路:很容易看出来这是一道广搜的题目,但是因为走E和走B所需要的时间不一样,因此不能用普通的队列存点。因为对于走B来说,要先打掉砖才能通过,所以我们可以理解为走B需要两步,而走E是指需要1

1660

【POJ】2312-Battle City(优化的广度搜索BFS)

【POJ】2312-Battle City(优化的广度搜索BFS)使用了不完全的对拍来查错; 【题目链接】http://poj.org/problem?id=2312

xuziling_的博客 365

POJ 2312 Battle City(bfs)

Description 题目背景就是小时候玩的坦克大战,求从起点到终点最少需要多少步。已知S和R是不能走得,E是空的,可以走,B是砖,只有打掉后才可以通过 Input 多组用例,每组用例第一行为row和col表示迷宫行列数,然后是一个row*col矩阵表示迷宫,以0 0结束输入 Output 对于每组用例,若能到达终点则输出最短步数,否则输出-1 Sample Input 3 4

ZSQ 596

poj2312--Battle City(Bfs)

Battle CityTime Limit:1000MSMemory Limit:65536KTotal Submissions:7712Accepted:2582DescriptionMany of us had played the game "Battle city" in our childhood, and some people (like me) even ofte...

dixi7825的博客 122

poj 2312 Battle City(优先队列+bfs)

Battle City Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7897   Accepted: 2640 Description Many of us had played the game "Battle city" in our childhood,

Calm微笑 517

POJ - 2312 Battle City —— bfs

题意: 从Y走到T的最短路径,走E和T需要一秒,B需要两秒,R和S不能走 思路: bfs一下,记录到每个点的最短路径长度 #include &lt;iostream&gt; #include &lt;queue&gt; #include &lt;cstring&gt; #include &lt;cstdio&gt; using namespace std; #define mod 100...

Lngxling的博客 285

bfs解决poj 2312 battle city(优先队列)

Battle City 题目链接 题目描述 简单描述一下,细节点击题目链接进行查看。 给定m,n,然后给定m*n的矩阵,矩阵元素由 ‘Y’ (you), ‘T’ (target), ‘S’ (steel wall), ‘B’ (brick wall), ‘R’ (river) and ‘E’ (empty space)中的几个元素组成,并且’Y’和’T’只出现一次,现要求从Y尽快走到T。 其中B表示的位置必须要射击一次,再走一步才算到达,E表示的位置可走一步直接到达,S和R表示的位置不可通过。 解题思路 要

weixin_43966538的博客 393
上一篇: POJ 1426 Find The Multiple ——————DFS
下一篇: POJ 3984 迷宫问题 —————— BFS
陶鸿杰
博客等级 码龄9年 93粉丝 298原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值