题目描述

给出一个NNN行MMM列的矩阵,每个单元是一个血色先锋军的成员。感染瘟疫的人,每过一小时,就会向四周扩散瘟疫,直到所有人全部感染上瘟疫。你已经掌握了感染源的位置,任务是算出血色先锋军的领主们感染瘟疫的时间

题目解析

瘟疫是以时间为阶段逐步扩张的,题目要求某个领主最早的感染时间,所以可以想到宽搜

首先,将所有感染源加入队列。然后,进入宽搜过程,将所有的格子搜索完毕,得到的即为每个格子得最早感染时间。

代码

#include<bits/stdc++.h>
using namespace std;
int n,m,A,B,u,v;
int a[505][505],fx[4][2]={{0,1},{1,0},{-1,0},{0,-1}};
bool flag[505][505];
queue<int> q;
void fun()
{while(!q.empty()){u=q.front(),q.pop();v=q.front(),q.pop();flag[u][v]=0;int x,y;for(int i=0;i<4;i++){x=u+fx[i][0],y=v+fx[i][1];if(x<1||x>n||y<1||y>m) continue;if(a[x][y]>a[u][v]+1){a[x][y]=a[u][v]+1;if(!flag[x][y]){flag[x][y]=1;q.push(x);q.push(y);}}}}
}
int main()
{memset(a,0x3f,sizeof(a));scanf("%d%d%d%d",&n,&m,&A,&B);for(int i=1;i<=A;i++){scanf("%d%d",&u,&v);a[u][v]=0;flag[u][v]=1;q.push(u);q.push(v);}fun();for(int i=1;i<=B;i++){scanf("%d%d",&u,&v);printf("%d\n",a[u][v]);}
}

[4.27] T1-血色先锋军相关推荐

  1. Java笔记(25):设计模式概述

    1.设计模式的概述和分类 设计模式: 经验的总结. A:创建型 创建对象 B:结构型 对象的组成 C:行为型 对象的功能 创建型模式: 1)简单工厂模式 2)工厂方法模式 3)设计模式 2.简单工厂模 ...

  2. Palindrome Linked List

    判断单链表是否为回文: 思想:利用来两个指针找到链表中点,将后半个链表反转.然后判断. 有个问题,下面的代码没有恢复原来的单链表. 1 class Solution { 2 public: 3 boo ...

  3. python - 线程

    python之路--线程 简介 操作系统线程理论 线程概念的引入背景 线程的特点 进程和线程的关系 使用线程的实际场景 用户级线程和内核级线程(了解) 线程和python 理论知识 线程的创建Thre ...

  4. [JQuery]用InsertAfter实现图片走马灯展示效果

    写在前面 最近一个搞美工的朋友让我给他写一个图片轮播的特效. 需求: 图片向左循环滚动. 图片滚动到中间高亮显示,并在下方显示照片人物对应的信息. 鼠标悬停止滚动. 鼠标离开开始滚动. 单击图片,图片 ...

  5. 靠二进制画几何[图论]

    @Kaike 今天来浅谈一下图,听说自己写总结的人grade++,rp++. 像我这样可爱的人怎么能错过这个机会呢嘤嘤嘤. 毕竟图至少啃了15day++. 恩曾经的小弱渣从来都是仰望高端玩家虐图论 听 ...

  6. java join yield_java中join和yield有什么区别?

    sleep执行后线程进入阻塞状态 yield执行后线程进入就绪状态 join执行后线程进入阻塞状态 main() { threadA.join(); //等线程A执行完,再执行主线程 ........ ...

  7. 前端逼死强迫症系列之javascript续集

    一.javascript函数 1.普通函数 function func(){ } 2.匿名函数 setInterval(function(){console.log(123); },5000) 3.自 ...

  8. Lua === Lua 十分钟基础入门上手

    Lua维基百科 Lua的目标是成为一个很容易嵌入到其他语言中使用的语言: 很多程序员使用Lua作为自己的嵌入式脚本语言,实现可配置性,可扩展性: 轻量级语言,体积小速度启动快,只包含一个精简的核心和基 ...

  9. python实现文本编辑器_Python-tkinter实现简单的文本编辑器

    Python-tkinter实现简单的文本编辑器 利用tkinter实现简单的文本编辑器.创建一个简单的文本编辑器.可以用读文件的方式在一个文本域里显示一些文字供用户编辑. 当用户退出程序时(通过 Q ...

  10. Python线程指南 ---转自 http://www.cnblogs.com/huxi/archive/2010/06/26/1765808.html

    Python线程指南 ---转自 http://www.cnblogs.com/huxi/archive/2010/06/26/1765808.html 本文介绍了Python对于线程的支持,包括&q ...

最新文章

  1. 地图构建两篇顶级论文解析
  2. python文件输出-python将控制台输出保存至文件的方法
  3. MongoDB如何一次插入多条json数据--转
  4. java怎么捕捉除数异常_Java异常的捕获及处理---小总结
  5. 欢迎使用CSDN-markdown编辑器1111
  6. 《产品设计与开发(原书第5版)》——第1章 概论 1.1 成功的产品开发的特点...
  7. [转]Arrays.sort()你应该知道的事
  8. 论文多个实验时VS或Unity工程需要每次新建吗?
  9. 十大物流仿真软件汇总
  10. 好用的PDF编辑软件有哪些?这几款工具建议收藏
  11. 用最简单的方法解决:linux系统重启网络delaying initialization错误
  12. 李飞飞计算机视觉笔记(1)--数据驱动的图像分类方式:K最近邻与线性分类器
  13. Unity实现飞机大战简单易懂
  14. uniapp全局数据(全局url、全局openId)
  15. 因子模型:套利定价理论APT
  16. 【黑马程序员pink老师前端】网页相关概念
  17. lc1819——枚举因数并判定,两种解法
  18. 产品经理必备工具:SWOT、PDCA、6W2H、SMART、WBS、时间管理、二八原则
  19. uniapp简单的身份证照片(正反面)上传
  20. IBM小型机AIX操作系统总结02--软件安装

热门文章

  1. 瀑布流 gank.io 美女福利
  2. 天龙单机进入角色提示服务器维护,《天龙小蜜常见问题的一些问题》
  3. 单臂路由 光猫桥接 一根网线复用
  4. postman高阶脚本
  5. Excel批量删除选区非数字的单元格的操作
  6. IB近三年的改革及未来发展趋势
  7. 鸿蒙系统发布会是什么时候,华为鸿蒙系统发布会影响很大 不过什么时候上市谁知道?...
  8. Illustrator 教程:如何在 Illustrator 中添加效果?
  9. 让WPF中的DataGrid像Excel一样可以筛选
  10. 【自考总结】走过的弯路,都是你成长的旅途