HDU 2612 Find a way ——————BFS + 打表

NFS共享速度慢?麒麟系统性能调优5个关键参数实测对比 本文针对银河麒麟服务器系统上NFS共享速度慢的问题,通过实测对比分析了五个关键调优参数。重点探讨了rsize/wsize传输块大小、TCP/UDP协议选择、sync/async模式权衡等,并结合麒麟系统特性提供了具体的优化建议与配置示例,旨在帮助用户有效提升国产化环境下的文件共享性能。 阅读详情

Find a way

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 24190    Accepted Submission(s): 7911


Problem Description
Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki.
Yifenfei’s home is at the countryside, but Merceki’s home is in the center of city. So yifenfei made arrangements with Merceki to meet at a KFC. There are many KFC in Ningbo, they want to choose one that let the total time to it be most smallest.
Now give you a Ningbo map, Both yifenfei and Merceki can move up, down ,left, right to the adjacent road by cost 11 minutes.
 

Input
The input contains multiple test cases.
Each test case include, first two integers n, m. (2<=n,m<=200).
Next n lines, each line included m character.
‘Y’ express yifenfei initial position.
‘M’    express Merceki initial position.
‘#’ forbid road;
‘.’ Road.
‘@’ KCF
 

Output
For each test case output the minimum total time that both yifenfei and Merceki to arrival one of KFC.You may sure there is always have a KFC that can let them meet.
 

Sample Input
  
4 4
Y.#@
….
.#..
@..M
4 4
Y.#@
….
.#..
@#.M
5 5
Y..@.
.#…
.#…
@..M.
#…#
 

Sample Output
  
66
88
66
 

Author
yifenfei
 

Source
 

Recommend
yifenfei   |   We have carefully selected several similar problems for you:   2717  1254  1728  2102  1072 
 

Statistic |  Submit |  Discuss | Note


我认为,M 能及经过 Y ,Y 也能到 M

用BFS寻找  Y or M   Y   o r   M 到每一个 @ @ 的最短距离
然后记录 Y 能到达每一个  @    @   的距离,用  cnt1[i][j]    c n t 1 [ i ] [ j ]   来记录,其中, i,j i , j ,是当前 @ @ 的坐标

然后记录 M 能到达每一个  @    @   的距离,用  cnt2[i][j]    c n t 2 [ i ] [ j ]   来记录,其中, i,j i , j ,是当前 @ @ 的坐标

找到之后遍历整张图

ans=0x3f3f3f3f;
for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
                if(str[i][j]=='@')
                    ans=min(ans,cnt1[i][j]+cnt2[i][j]);

CODE:

#include<bits/stdc++.h>
using namespace std;
const int MAXN=222;
char str[MAXN][MAXN];
bool vis[MAXN][MAXN];
int cnt1[MAXN][MAXN];
int cnt2[MAXN][MAXN];

int d[4][2]={1,0, -1,0, 0,1, 0,-1};
int n,m,sx,sy,yx,yy,mx,my;

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  bfs1(int x,int y)
{
    memset(vis,0,sizeof(vis));
    memset(cnt1,0x3f,sizeof(cnt1));//需要对其初始化为 INF 因为有可能一个能到,另外一个不能到
    vis[x][y]=1;
    priority_queue<node> que;
    que.push(node(x,y,0));
    node e1,e2;
    int ans=0;
    while(que.size())
    {
        e1=que.top();
        que.pop();
        if(str[e1.x][e1.y]=='@')
        {
            vis[e1.x][e1.y]=1;
            cnt1[e1.x][e1.y]=e1.step;//记录 Y 到 @ 的最小距离
        }
        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] && str[e2.x][e2.y]!='#' && 0 <= e2.x && e2.x <n && 0 <= e2.y && e2.y <m)
            {
                vis[e2.x][e2.y]=1;
                que.push(e2);
            }
        }
    }
}
void  bfs2(int x,int y)
{
    memset(vis,0,sizeof(vis));
    memset(cnt2,0x3f,sizeof(cnt2));
    vis[x][y]=1;
    priority_queue<node> que;
    que.push(node(x,y,0));
    node e1,e2;
    int ans=0;
    while(que.size())
    {
        e1=que.top();
        que.pop();
        if(str[e1.x][e1.y]=='@')
        {
            vis[e1.x][e1.y]=1;
            cnt2[e1.x][e1.y]=e1.step;//记录 M 到 @ 的最小距离
        }
        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] && str[e2.x][e2.y]!='#' && 0 <= e2.x && e2.x <n && 0 <= e2.y && e2.y <m)
            {
                vis[e2.x][e2.y]=1;
                que.push(e2);
            }
        }
    }
}
int main()
{
    while(~scanf("%d %d",&n,&m))
    {
        for(int i=0;i<n;i++)    scanf("%s",str[i]);
//        for(int i=0;i<n;i++)    printf("%s\n",str[i]);
        int ans=0x3f3f3f3f;
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
            {
                if(str[i][j]=='Y')
                    bfs1(i,j);
                if(str[i][j]=='M')
                    bfs2(i,j);
            }
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
                if(str[i][j]=='@')
                    ans=min(ans,cnt1[i][j]+cnt2[i][j]);
        printf("%d\n",ans*11);

    }
    return 0;
}
C# 固高板卡(总线型) 操作类 主要功能有:初始化,轴使能,正负方向手动移动,回0,点到点移动,等待移动完成,输入IO数据读取,输出IO控制,清除报警等功能。 阅读详情

相关推荐

线性回归LinearRegression

对视频中线性回归算法的相关内容进行总结与记录 文章目录一、理论基础二、实例2.1 一元线性回归2.1.1 推导过程2.1.2 代码实现(基于numpy)2.1.3 代码实现(基于sklearn)2.2 多元线性回归2.2.1 代码实现(基于numpy)2.2.2 代码实现(基于sklearn) 一、理论基础 回归 通常是指利用某个函数,尽可能把数据样本点“串”在一起,用于描述输入变量和输出变量间的变化关系 线性回归 特点:用来把数据“串”起来的那个函数是线性的 (一元线性回归(一个自变量) &a.

邱邱邱的博客 1068

【题解】HDU - 2612 Find a way BFS+打表

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612 题目大意:Yifenfei和Merceki两个人约在了KFC见面,求他们各自分别从家里到哪个KFC距离之和最小 我的题解: 我一开始想都没想傻傻对每个KFC进行bfs,然后不负众望地t了好多次,真的是太蠢了 后来看了一下别人的做法,现在拿个小本本记下来,以后还遇到像这种需要记录多个位置的值的要拿...

替这位空想家惊讶 205

SAP S4业务伙伴(BP)实战指南:从角色分配到数据同步的完整流程

本文详细解析了SAP S4业务伙伴(BP)功能,从基础概念到实战操作,涵盖角色分配、数据同步及常见问题排查。通过BP机制,企业可高效管理客户、供应商等多重身份,实现数据共享和动态切换,显著提升主数据管理效率。特别适合SAP实施顾问和ERP管理员参考。

y2z3a4b5c的博客 870

hdu2612 Find a way--BFS & 打表

原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=2612 一:分析 先打个表,把两个人到每个点的最小距离求出来,下面就好做了。 二:AC代码 #define _CRT_SECURE_NO_DEPRECATE #include #include #include using namespace std; #

半壶老酒 574

传统芯片封装工艺流程简介

塑封是将工件和树脂安装在模具中,加热模具,使树脂液化充满模具,降温保持一定时间后,树脂凝结为固态即可取出。它将一个大的晶圆切割成许多单独的小块,每个小块是一个“芯片”(Chip,die),这些芯片是单个集成电路的基本单位。对裸露在外的引线框架外脚电镀Sn-Pb合金,这样不仅可以提高外脚的抗氧化性,还有利于后续与印刷电路板的焊接。导电胶粘贴法:将含有银粉的环氧树脂(银浆)涂敷在框架或基板上,再将芯片放置其上,固化后可以将芯片牢牢粘接。引线框架的各腿是用筋连接着的,起支撑作用,塑封固化后,需要将其连筋切掉。

芯想是陈的博客 3191

LaTeX新手入门以及TeXlive和TeXstudio的安装使用

作为一个新手,LaTeX的了解和使用很是费了一番功夫,因此,在这里给找不到路的同志们稍微介绍一下。如有错误,敬请指正。本篇内容基于Win10系统,因此安装在Mac或者Linux上的同学可以再找找其他的介绍文章。 目录 LaTeX介绍 LaTeX环境配置 一、TeXlive下载 二、TeXlive安装 1. 安装main installer 2. 正式安装 三、TeXstudio安装...

zywhehe的博客 21万+

HDU - 2612 - Find a way(BFS+打表)

题目链接 题意: 求2个点到KFC的距离之和,使其最小 题解: 可用2次BFS,分别求出2个点到各个KFC的最短距离,然后找出和最小的即可 AC代码: #include&lt;stdio.h&gt; #include&lt;string.h&gt; #include&lt;iostream&gt; #include&lt;queue&gt; #define inf 0xffffff usi...

Anoyer的博客 305

Android-音频配置文件详解

前言:   Android P 引入了一种新的音频政策配置文件格式 (XML),用于描述音频拓扑。新的 XML 文件支持定义输出输入流配置文件、可用于播放和捕获的设备以及音频属性的数量和类型。但是每个项目的代码里面都有很多音频配置文件,具体使用的是哪个文件呢?本文将详细讲述。 1. 查看运行时具体使用的xml adb shell dumpsys media.audio_policy | grep -iE "Config source:" 结果如下: Config source: /vendor

cheriyou_的博客 3947

HDU:2612 Find a way(双BFS+打表)

Find a way Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10413    Accepted Submission(s): 3413 Problem Description Pass a year le

zugofn的博客 2128

Ceph入门到精通-更换osd、扩容osd

【代码】Ceph入门到精通-更换osd、扩容osd。

隔壁老瓦的专栏 1548

【汽车 OTA 】差分升级

汽车 OTA 差分升级,本质是在整包 OTA 的基础上,通过“只传变化”的方式,大幅减少下载数据量、时间和成本,是当前车端软件升级的主流方向之一。

天赐好车的博客 485

HDU2612 Find a way BFS

Find a way Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 28250 Accepted Submission(s): 9128 Problem Description Pass a year learning in Ha...

DouglasConnor的博客 299

【数据结构】期末考试复习(考点+例题)

1.线性表定义及其存储实现:顺序表和链接表,优缺点分析(顺序存储可随 机访问,链式存储可灵活利用空间),相关操作的时间复杂度。 2.链表的插入删除操作 3.两种特殊的线性表及其应用:栈、队列 4.栈、队列上的(插入/删除)操作及其特点 5.循环队列满和空的条件 6.能够定义线性表、栈、队列的数据存储结构,能够实现相关操作的算法并 分析时间复杂度(例如插入、删除及其它应用等) 7.理解线性结构的应用( 如根据要求能灵活定义线性表结构,能根据线性表 的插入、删除操作解决实际问题) 二叉树基本概念与性质(高

Molly 的博客 9371

HDU 2612 Find a way 多起点 多终点 BFS

N - Find a way Time Limit:1000MS    Memory Limit:32768KB    64bit IO Format:%I64d & %I64u SubmitStatusPracticeHDU 2612 Description Pass a year learning in Hangzhou, yifenfei arrival hom

colorfulshark 1000

jre9下载 jdk9

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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

HDU 2612 Find a way(BFS)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612 题目大意:给你一张n*m的图,图上有两个点Y、M,和若干个点@,找出某个点@使Y、M到这里的距离之和最小,并求出距离。 解题思路:BFS,求出Y、M到各个@的最小距离存下来,最后枚举各个@找出最小距离和即可。 代码: 1 #include<cstdio> ...

weixin_30578677的博客 78

假人有限元模型

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

HDU 2612 Find a way(bfs : 两起点到同一终点的最小步数,终点不唯一)

Find a wayTime Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 21520    Accepted Submission(s): 6988Problem DescriptionPass a year learning in Hangzh...

BBHHTT的博客 538

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

hdu 2612 Find a way (BFS)

题意:一张地图,两个人要去KFC见面,但是KFC有很多,他们想找一个让双方走的步数最小的KFC,然后输出步数。 题解:这道题有点小坑,就是如果你把所有的KFC的坐标存起来,然后多次进行双向的BFS的话,会时间超限。所以这道题应该用一下类似于打表的思想,让两个人只跑一遍图,然后记录,每个人到地图的每个位置的步数,然后在遍历地图去找步数最小的KFC。详情看代码注释。 #include #inclu

PK__PK的博客 288

Find a way(hdu 2612) (两次bfs)

Find a way Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 15   Accepted Submission(s) : 5 Font: Times New Roman | Verdana | Georgia Font Siz...

代码行 215

P1101 单词方阵——————暴力或者DFS

P1101 单词方阵 题目描述 给一n \times nn×n的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*代替,以突出显示单词。例如: 输入: 8 输出: qyiz...

鸿杰 的博客 668

HDU - 1312 Red and Black————搜索

There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four adjacent tiles. But he can’...

鸿杰 的博客 468

FZU 2107 Hua Rong Dao——————DFS

Hua Rong Dao Accept: 523 Submit: 1086 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description Cao Cao was hunted down by thousands of enemy soldiers when he escaped from Hua Rong Dao. ...

鸿杰 的博客 429

Codefoces 977E - Cyclic Components——————dfs

Cyclic Components You are given an undirected graph consisting of n vertices and m edges. Your task is to find the number of connected components which are cycles. Here are some definitions of graph t...

鸿杰 的博客 412

POJ 3009 Curling 2.0——————dfs

Curling 2.0 今年的奥运会之后,在行星mm-21上冰壶越来越受欢迎。但是规则和我们的有点不同。这个游戏是在一个冰游戏板上玩的,上面有一个正方形网格。他们只用一块石头。游戏的目的是让石子从起点到终点,并且移动的次数最小 图1显示了一个游戏板的例子。一些正方形格子可能被砖块占据。有两个特殊的格子,起始点和目标点,这是不占用块。(这两个方块是不同的)一旦石头开始移动就不会停下,除非它击中砖块块...

鸿杰 的博客 398

HDU 1241 Rescue ——————BFS , 优先队列

RescueTime Limit: 2000/1000 MS (Java/Others)&nbsp;&nbsp;&nbsp;&nbsp;Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 37778&nbsp;&nbsp;&nbsp;&nbsp;Accepted Submission(s): 13101Problem Desc...

鸿杰 的博客 388

HDU 1372 Knight Moves——————BFS , 优先队列

Knight MovesTime Limit: 2000/1000 MS (Java/Others)&nbsp;&nbsp;&nbsp;&nbsp;Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13742&nbsp;&nbsp;&nbsp;&nbsp;Accepted Submission(s): 8060Problem...

鸿杰 的博客 358

POJ 2186 Popular Cows——————(Kosaraju求强连通分量,缩点)

Popular Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 42216 Accepted: 17135 Description Every cow’s dream is to become the most popular cow in the herd. In a herd of N (1 <= N &...

鸿杰 的博客 341
上一篇: HDU 1372 Knight Moves——————BFS , 优先队列
下一篇: POJ 2251 Dungeon Master ——————BFS
陶鸿杰
博客等级 码龄9年 93粉丝 298原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值