[4.27] T1-血色先锋军
题目描述
给出一个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-血色先锋军相关推荐
- Java笔记(25):设计模式概述
1.设计模式的概述和分类 设计模式: 经验的总结. A:创建型 创建对象 B:结构型 对象的组成 C:行为型 对象的功能 创建型模式: 1)简单工厂模式 2)工厂方法模式 3)设计模式 2.简单工厂模 ...
- Palindrome Linked List
判断单链表是否为回文: 思想:利用来两个指针找到链表中点,将后半个链表反转.然后判断. 有个问题,下面的代码没有恢复原来的单链表. 1 class Solution { 2 public: 3 boo ...
- python - 线程
python之路--线程 简介 操作系统线程理论 线程概念的引入背景 线程的特点 进程和线程的关系 使用线程的实际场景 用户级线程和内核级线程(了解) 线程和python 理论知识 线程的创建Thre ...
- [JQuery]用InsertAfter实现图片走马灯展示效果
写在前面 最近一个搞美工的朋友让我给他写一个图片轮播的特效. 需求: 图片向左循环滚动. 图片滚动到中间高亮显示,并在下方显示照片人物对应的信息. 鼠标悬停止滚动. 鼠标离开开始滚动. 单击图片,图片 ...
- 靠二进制画几何[图论]
@Kaike 今天来浅谈一下图,听说自己写总结的人grade++,rp++. 像我这样可爱的人怎么能错过这个机会呢嘤嘤嘤. 毕竟图至少啃了15day++. 恩曾经的小弱渣从来都是仰望高端玩家虐图论 听 ...
- java join yield_java中join和yield有什么区别?
sleep执行后线程进入阻塞状态 yield执行后线程进入就绪状态 join执行后线程进入阻塞状态 main() { threadA.join(); //等线程A执行完,再执行主线程 ........ ...
- 前端逼死强迫症系列之javascript续集
一.javascript函数 1.普通函数 function func(){ } 2.匿名函数 setInterval(function(){console.log(123); },5000) 3.自 ...
- Lua === Lua 十分钟基础入门上手
Lua维基百科 Lua的目标是成为一个很容易嵌入到其他语言中使用的语言: 很多程序员使用Lua作为自己的嵌入式脚本语言,实现可配置性,可扩展性: 轻量级语言,体积小速度启动快,只包含一个精简的核心和基 ...
- python实现文本编辑器_Python-tkinter实现简单的文本编辑器
Python-tkinter实现简单的文本编辑器 利用tkinter实现简单的文本编辑器.创建一个简单的文本编辑器.可以用读文件的方式在一个文本域里显示一些文字供用户编辑. 当用户退出程序时(通过 Q ...
- 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 ...
最新文章
- 地图构建两篇顶级论文解析
- python文件输出-python将控制台输出保存至文件的方法
- MongoDB如何一次插入多条json数据--转
- java怎么捕捉除数异常_Java异常的捕获及处理---小总结
- 欢迎使用CSDN-markdown编辑器1111
- 《产品设计与开发(原书第5版)》——第1章 概论 1.1 成功的产品开发的特点...
- [转]Arrays.sort()你应该知道的事
- 论文多个实验时VS或Unity工程需要每次新建吗?
- 十大物流仿真软件汇总
- 好用的PDF编辑软件有哪些?这几款工具建议收藏
- 用最简单的方法解决:linux系统重启网络delaying initialization错误
- 李飞飞计算机视觉笔记(1)--数据驱动的图像分类方式:K最近邻与线性分类器
- Unity实现飞机大战简单易懂
- uniapp全局数据(全局url、全局openId)
- 因子模型:套利定价理论APT
- 【黑马程序员pink老师前端】网页相关概念
- lc1819——枚举因数并判定,两种解法
- 产品经理必备工具:SWOT、PDCA、6W2H、SMART、WBS、时间管理、二八原则
- uniapp简单的身份证照片(正反面)上传
- IBM小型机AIX操作系统总结02--软件安装