T84341 Jelly的难题1

题解

当窝发现窝的锅在读入这个矩阵的时候,窝。。窝。。窝。。

果然,一遇到和字符串有关的题就开始吹空调

好啦我们说说思路吧

BFS队列实现

拿出一个没有走过的点,扩展它可以达到的节点,那么它可以到达的节点的到达时间就等于它父节点到达时间+1

代码

#include<bits/stdc++.h>

using namespace std;

const int mod=;
int n,m,sx,sy,t;
long long much;
char ju[][];
int vis[][];
int dis[][]; int dx[]={-,,,};
int dy[]={,-,,}; struct node
{
int x,y;
}; queue<node>q; int main()
{
scanf("%d%d\n",&n,&m);
memset(vis,-,sizeof(vis));
memset(dis,,sizeof(dis)); for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
cin>>ju[i][j]; //我的锅就在这里QWQ if(ju[i][j]=='*')
{
sx=i;sy=j;
vis[i][j]=;
}
if(ju[i][j]=='o')
vis[i][j]=;
if(ju[i][j]=='#')
vis[i][j]=;
} node h;
h.x =sx;h.y =sy;
q.push(h); while(!q.empty())
{ node now=q.front();
q.pop();
t=max(t,dis[now.x][now.y]); for(int i=;i<=;i++)
{
int xx=now.x +dx[i];
int yy=now.y +dy[i];
if(vis[xx][yy]==)
{
dis[xx][yy]=dis[now.x ][now.y ]+;
vis[xx][yy]=;
node h;
h.x =xx;
h.y =yy;
q.push(h);
}
}
} for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
if(dis[i][j]!=)
{
dis[i][j]=t-dis[i][j]+;
much=(much%mod+dis[i][j]%mod)%mod;
} } printf("%d\n",t);
printf("%ld\n",much); return ;
}

T84341 Jelly的难题1的更多相关文章

  1. 【6.28校内test】T1 Jelly的难题1

    Jelly的难题[题目链接] 废话一句:今天中考出成绩,感觉大家考的都超级棒,不管怎样,愿大家成为最好的自己. 好了废话完了,下面是题解部分: SOLUTION: 首先你可能发生的,是看不懂题: 定睛 ...

  2. 2019.6.28 校内测试 T1 Jelly的难题1

    这题面有点难理解,建议直接跳到题意解释那一部分(虽然我觉得解释的不大对,但按照解释来做确实能AC): 按照“题意解释”的思路来思考这个题,那么就十分的简单了: 1.首先要读入这个字符矩阵,可以用cin ...

  3. MY TESTS

    励志整理所有的n次考试的博客: [五一qbxt]test1 [五一qbxt]test2 [校内test]桶哥的问题 [6.10校内test] noip模拟 6.12校内test [6.12校内test ...

  4. 蒲公英 · JELLY技术周刊 Vol.03

    蒲公英 · JELLY技术周刊 Vol.03 「蒲公英」期刊全新升级--JELLY技术周刊!深度挖掘业界热点动态,来自团队大咖的专业点评,带你深入了解团队研究的技术方向. 登高远眺 天高地迥,觉宇宙之 ...

  5. 蒲公英 · JELLY技术周刊 Vol.13 跟 VSCode 学习如何开发大型 IDE 项目

    开发一个 IDE 很难么?这或许是件很难的事情,但当我们参考 VSCode 的技术构架来看,整个开发流程就会平滑顺畅很多,从内核开发.代码编辑器.视图结构到插件系统,在这整个技术构架中我们可以看到很多 ...

  6. 蒲公英 · JELLY技术周刊 Vol.33: 前端基础课堂开课啦~

    蒲公英 · JELLY技术周刊 Vol.33 页面文件太大?图片过大了吧:页面加载白屏?很有可能是字体文件还没加载完:页面加载时间过长?多半是主进程被阻塞--该怎么办呢?快来小葵,咳咳,「蒲公英」前端 ...

  7. 深入super,看Python如何解决钻石继承难题 【转】

    原文地址 http://www.cnblogs.com/testview/p/4651198.html 1.   Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通 ...

  8. 探讨webapp的SEO难题(上)

    前言 网络蜘蛛无法解析javascript,至少百度是不能的,神马搜索差的更远,而我们的webapp的渲染展示完全由javascript驱动 所以蜘蛛访问webapp页面会得到一个白页面,比如,我们期 ...

  9. hduoj 1251 统计难题

    http://acm.hdu.edu.cn/showproblem.php?pid=1251 统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory ...

随机推荐

  1. 好用的 python 工具集合

    图标处理小程序, 妈妈再也不用担心我不会制作图标了 # PythonMargick包可以到Unofficial Windows Binaries for Python Extension Packag ...

  2. 目标 - 在虚拟机CentOS7中无图形界面安装Oracle11G R2版本

    参考: https://www.cnblogs.com/yejingcn/p/10278473.html centos7启动oracle su - oracle //切换到自己的oracle账户 ls ...

  3. vim 搜索 向前,向后

    vim 搜索可以是 / 或者 ?,前者是往下找,后者是往前找. 用 n 查找下一个的时候,就和这两个指令指定的方向相同.如果你想改变方向的话,比如想往下找,那么 / 完了直接回车就行了.表示再次使用上 ...

  4. radio赋值法

    一般都会使用attr来使选中: $("#DIV的ID input[name='radio的name'][value="'+动态传的radio的value值+'"]&quo ...

  5. tcpdump工具抓到的cap文件

    一.链路层   ---> 以太网数据包 一个数据包被称为一帧, 制定这个规则的协议就是以太网协议.一个完整的以太网数据包如下图所示: 整个数据帧由首部.数据和尾部三部分组成,首部固定为14个字节 ...

  6. 忘记mysql或mariadb数据库密码的解决方案

    主机环境 主机系统:

  7. UVALive - 5695 The Last Puzzle (思维+区间dp)

    题目链接 题目大意:有n个按钮排成一条直线,你的任务是通过左右移动按下所有按钮,按钮如果一段时间没有被按下就会被弹开. 以下是我的推论(不一定正确): 直观地看的话,如果选择的是最优路径,那么路径的形 ...

  8. 生成json格式

    html页面 <input type="button" value="重新生成JSON" class="button1" id=&qu ...

  9. PIXI屏幕自适应以及强制横屏

    canvas屏幕适配可以用css样式自适应, 可以设置transform旋转角度和transfrom-origin:center以中心点旋转位置以及宽高width和height来实现对canvas的适 ...

  10. Java多线程和并发(六),yield函数和中断线程

    目录 1.yield函数 2.中断线程 六.yield函数和中断线程 1.yield函数 2.中断线程 (1)已经被抛弃的方法 (2)目前使用的方法