Codeforces 329B Biridian Forest(BFS)

codeforces 329B B. Biridian Forest 精巧的bfs B. Biridian Forest time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You're a mikemon breeder currently in the middle o 阅读详情

题目链接:Codeforces 329B Biridian Forest

BFS。

不难想到,若小队a距出口的最小距离小于等于主人公距出口的最小距离,小队a一定可一追到主人公,所以只要以出口为起点,做一个bfs记录下出口到各点的距离,之后统计人数即可。需要注意的一点是有些区域可能会被障碍物个离开,初始化的时候要将所有区域到出口的距离设为无穷大,不然在统计时可能会把隔了区的小队人数也统计进去。

#include <iostream>
#include <queue>
#include <cstring>

using namespace std;

const int MAX_N = 1000 + 100;
const int fx[5]={0,0,1,0,-1};
const int fy[5]={0,1,0,-1,0};
const int inf = (1 << 30);
int dis[MAX_N][MAX_N];
bool vis[MAX_N][MAX_N];
char _map[MAX_N][MAX_N];
struct Node
{
    int x,y,num;
};
struct Point
{
    int x,y,dis;
};
Node node[MAX_N * MAX_N];
Node st,en;//start,end
int r,c;

void BFS()
{
    queue<Point> point;
    Point p_en;
    p_en.x = en.x;
    p_en.y = en.y;
    p_en.dis = 0;
    point.push(p_en);
    vis[p_en.x][p_en.y] = true;
    while(!point.empty())
    {
        Point q = point.front();
        point.pop();
        Point _new;
        for(int i = 1;i <= 4;i++)
        {
            _new.x = q.x + fx[i];
            _new.y = q.y + fy[i];
            if(_new.x <= r && _new.x > 0 && _new.y <= c && _new.y > 0 && _map[_new.x][_new.y] != 'T' && !vis[_new.x][_new.y])
            {
                _new.dis = q.dis + 1;
                vis[_new.x][_new.y] = true;
                point.push(_new);
                dis[_new.x][_new.y] = _new.dis;
            }
        }
    }
}
int main()
{
    memset(vis,0,sizeof(vis));
    int cnt = 0;
    cin >> r >> c;
    for(int i = 1;i <= r;i++)
    {
        for(int j = 1;j <= c;j++)
        {
            cin >> _map[i][j];
            dis[i][j] = inf;
            if(_map[i][j] == 'S')
            {
                st.x = i;
                st.y = j;
            }
            else if(_map[i][j] == 'E')
            {
                en.x = i;
                en.y = j;
            }
            else if(_map[i][j] >= '0' && _map[i][j] <= '9')
            {
                cnt++;
                node[cnt].x = i;
                node[cnt].y = j;
                node[cnt].num = _map[i][j] - '0';
            }
        }
    }
    BFS();
    int ans = 0;
    for(int i = 1;i <= cnt;i++)
    {
        if(dis[node[i].x][node[i].y] <= dis[st.x][st.y])
            ans += node[i].num;
    }
    cout << ans << endl;
    return 0;
}


研发流程后端开发工具,提示功能开发效率 后端开发工具 立即下载

相关推荐

AMBA总线—APB总线协议详解

文章目录一、APB总线介绍1.1.什么是APB总线1.2.典型的基于 AMBA 总线的系统架构1.3.APB信号列表(重点)二、APB总线传输(时序)2.1.APB 状态机2.2.写操作(重要)2.3.读操作(重要)2.4.APB组件接口(重要)2.4.1.APB Bridge框图2.4.2.APB Slave框图三、APB到AHB的接口3.1.读操作3.2.写操作3.3.读写交替传送 一、APB...

Mr.翟的博客 4万+

Biridian Forest(BFS)

题目链接:[http://codeforces.com/problemset/problem/329/B] 分析: 其它的训练师都是坏人,想和你打架,如果你是他们,你会怎么做? 肯定是在必经之路等着,可是必经之路有很多,他们没有瞬移能力,但是有一个位置你必然要到达,就是出口,所以他们只要在出口等你就好了。 也就是说,只要能在你之前或与你同时到达的训练师,都会和你发生战斗。 以终点开始...

CatDsy的博客 478

嵌入式开发中Tab与空格混用的危害与统一规范实践

在软件工程中,代码格式一致性是保障可读性与团队协作效率的基础。从原理上看,制表符(Tab)与空格(Space)在存储与显示机制上存在本质差异:Tab是控制字符,其显示宽度取决于编辑器设置;空格则是固定宽度的字符。这种差异导致混用时会引发代码对齐错乱、版本控制冲突及跨平台兼容性问题,严重影响工程的可维护性。尤其在嵌入式开发领域,资源受限环境与高可靠性要求使得统一的编码规范更为关键。通过配置编辑器、集成clang-format等自动化工具,可以强制实现缩进风格的一致性,从而提升代码质量与团队协作效率。本文聚焦于

weixin_42545636的博客 276

Biridian Forest(贪心,bfs,思维)

原题链接 题目描述 输入描述 输出描述 题目说明 输入样例1 5 7 000E0T3 T0TT0T0 010T0T0 2T0T0T0 0T0S000 输出样例1 3 输入样例2 1 4 SE23 输出样例2 2 题目大意: 在一片森林内存在你和其他竞争对手,你的目标是走到该森林的出口,但你的路线在其他竞争对手眼中是已知的(明牌! ),而其他竞争对手的目标是在路上偶遇你并和你打一架(不消耗时间),且每当你行动一格时,其他竞争对手也会行动一格,并且他们都很聪明不会选择绕路。求当你达到出口时所

国家一级划水运动员的博客 181

手把手调试AD9653的LVDS数据采集:从VIO抓波形到用F0/F8帧对齐的实战心得

本文详细介绍了AD9653高速ADC与Xilinx 7系列FPGA(如7z035)的LVDS数据采集调试实战经验。从硬件环境搭建、Vivado工具链配置到LVDS数据对齐技巧,重点分享了利用VIO抓取波形和使用F0/F8帧对齐的实用方法,帮助工程师快速解决高速数据采集系统中的信号完整性问题。

weixin_29169899的博客 704

基于51单片机的多功能计算器全套设计

当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且人脑比较容易出错。计算器作为一种快速通用的计算工具方便了用户的使用。计算器可谓是我们最亲密的电子伙伴之一。本设计着重在于分析计算器设计开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。 本设计是以STC89C52单片机为核心的计算器模拟系统设计,输入采用5×8矩阵键盘,可以进行加、减、乘、除等十几种数字运算,同时支持括号

runweipa的博客 1743

CF 329B(Biridian Forest-贪心-非二分)

B. Biridian Forest time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You're a mikemon breeder currently in th

nike0good |Oier&ACMer | 熟能生巧 1901

5分钟搞定Vivado IP核的VCS仿真:从Export脚本到Verdi波形查看全流程

本文详细介绍了如何利用Vivado的Export Simulation功能,快速搭建Vivado IP核的VCS与Verdi联合仿真环境。通过自动化脚本生成、FSDB波形配置及高效调试技巧,实现从工程导出到波形查看的全流程,大幅提升FPGA验证效率,尤其适合IC验证工程师和竞赛团队。

weixin_29306261的博客 482

Biridian Forest CodeForces - 329B (逆向bfs)

题目链接:点我题意:实际上就是问有多少人可以在开始位置S之前到达终点.思路:逆向bfs,记录从终点开始到每个点的距离,然后找出所有的距离比起点离终点小的点,把他们的人数加起来即可.代码:#include<cstdio> #include<cstring> #include<cmath> #include<iostream> using namespace std;const int maxn = 1

wood 494

Java全栈:电影数据检索与推荐系统实战

全文检索个性化推荐数据缓存容器化部署通过这个项目,我们不仅实践了Java全栈开发的各项技术,还接触了推荐系统的核心算法实现。用户历史行为数据物品特征数据上下文信息实时反馈算法的准确性推荐的多样性系统的实时性冷启动问题性能优化效果评估VIEW, // 浏览CLICK, // 点击SEARCH, // 搜索RATE, // 评分COMMENT, // 评论SHARE, // 分享WATCH_TIME, // 观看时长。

exlink2012的专栏 891

【读代码】SQLBot:开源自然语言转SQL智能助手原理与实践

SQLBot是 DataEase 团队开源的自然语言转 SQL 智能助手,致力于让非技术用户也能通过自然语言与数据库对话,自动生成 SQL 查询,实现自助数据分析、智能BI问答、报表生成等场景。SQLBot 结合了大语言模型(LLM)、数据库元数据解析、SQL解析与执行等多项技术,具备强大的多数据库适配能力和灵活的扩展性。降低数据分析门槛,让业务人员无需掌握SQL即可获取数据洞察支持多种数据库类型,适应企业多样化数据环境提供可扩展的API和插件机制,便于集成到各类BI、数据平台和业务系统。

kakaZhui的博客 829

CodeForces - 329B 《Biridian Forest》 【反向BFS】

Biridian Forest You're a mikemon breeder currently in the middle of your journey to become a mikemon master. Your current obstacle is go through the infamous Biridian Forest. The forest T

FinkyS 662

vue3+vite:引入tailwindcss不生效的原因,详细解决Tailwind配置没问题但就是不生效的情况,配置正确无报错但样式没有生效(包括tailwindcss在Vue2使用不生效解决方案)

vue3 tailwind使用教程以及tailwind不生效的问题,vue3+vite引入tailwindcss不生效的原因,tailwindcss配之后不生效怎么办,如何解决tailwinscss不生效的原因,Vue3项目使用tailwindcss在Vue2使用,不生效解决,如何解决使用 Tailwind CSS 后出现的样式不生效的问题?tailwindcss配之后不生效 tailwindcss不生效,为什么我的 Tailwind css 类没生效,解决使用 Tailwind 时样式不生效的问题,配置没

✅ 精选推荐文章 4128

【Codeforces 329B】Biridian Forest

【链接】 我是链接,点我呀:) 【题意】 题意 【题解】 找到出口到每个点的最短距离。 设你到出口的最短距离为temp 那么如果某个人到终点的距离<=temp,则他们肯定能遇到你 因为他们可以在终点等你。。 但是如果某个人到终点的距离>temp,那么他们肯定不可能在某个时刻和你遇到 因为如果可以在某个时刻与你遇到的话,那他可以接下来跟着你走,那么他到终点的距离...

219

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

CodeForces 329B(bfs)

B. Biridian Forest time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You're a mikemon breeder currently in the middle o

街角的花街糖 774

android 蓝牙通讯demo

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

Codeforces Round #192 (Div. 1) B. Biridian Forest 暴力bfs

B. Biridian Forest Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/329/problem/B Description You're a mikemon breeder currently in the middle of your journey to be...

weixin_34168880的博客 117

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

codeforces329B(bfs)

题意描述 给定RxC的网格,网格中存在猎人,询问走到终点前要和多少组猎人碰面 思路 由于猎人事先知道我们行走的路线,所以猎人们可以先走到终点前等待,可以使用bfs预处理出终点到各个点之间的距离,如果猎人到终点的距离小于等于我们从起点到终点的距离,那么一点可以相遇,最后遍历一遍即可。 代码 #include<bits/stdc++.h> #define x first #define y second #define IOS ios::sync_with_stdio(false);cin.tie(

Dejavu的博客 303

codeforces 330A 330B 329A 分别是7月20DIV2的前三题

题目地址:A. Cakeminator  B. Road Construction  C. Purification     都是思维题目,自己思想很不着调啊,还得多多联系。 A. Cakeminator /* 题目想复杂了,每一行或一列有东西就可以吃,at least one cake 可自己却看成了至少两个(num>1改成num>=1)........,悲剧了,

布生气 1647

Codeforces 330D Biridian Forest【思维+Bfs】

D. Biridian Forest time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You're a mikemon breeder currently in the middle o

mengxiang000000 482

Biridian Forest

//如果s - e的最短路比Breeder到e的最短路要长, 该Breeder就可以战斗, 因为它可以在终点等你~ //反之如果某个Breeder的到e的最短路比s - e的最短路长,但是可以在你的路径点x上和你战斗, //那么它也可以比你先前后者同时到达e, 和假设相反。 //所以比较最短路就行了, 用BFS给e打单源最短路径表, 然后比较就行了。 #include

极度猥琐 891

Codeforces 329B bfs

B. Biridian Forest time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You're a mikemon breeder currently in the middle o

PiscesCrab的博客 532

Cutting CodeForces - 998B (思维)

B. Cuttingtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThere are a lot of things which could be cut — trees, paper, "the rope". In this problem...

JiaYao的博客 760

CodeForces 38 F.Smart Boy(博弈论+dfs)

Description 有nnn个只由小写字母组成的字符串,两个人轮流从一个空字符串开始构造字符串,要求每个人在其操作轮要加一个字符在已有字符串前面或者后面使得这个字符串依旧是这nnn个字符串中某些字符串的子串,如果没有合法方案则该人失败,否则该人得分,假设该人操作后字符串为sss,则本轮得分Score(s)=(∑i=1|s|value(si))∗max1≤i≤|s|{|value(si)}+n...

ZSQ 768
上一篇: Codeforces 329A Purification
下一篇: HDU 1176 免费馅饼(数塔变形)
小爷永远不死
博客等级 码龄15年 58粉丝 363原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值