题目描述

巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物。孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他们将主力只好聚集了起来,以抵抗天灾军团的围剿。可怕的是,他们之中有人感染上了亡灵瘟疫,如果不设法阻止瘟疫的扩散,很快就会遭到灭顶之灾。大领主阿比迪斯已经开始调查瘟疫的源头。原来是血色先锋军的内部出现了叛徒,这个叛徒已经投靠了天灾军团,想要将整个血色先锋军全部转化为天灾军团!无需惊讶,你就是那个叛徒。在你的行踪败露之前,要尽快完成巫妖王交给你的任务。

军团是一个 n 行 m 列的矩阵,每个单元是一个血色先锋军的成员。感染瘟疫的人,每过一个小时,就会向四周扩散瘟疫,直到所有人全部感染上瘟疫。你已经掌握了感染源的位置,任务是算出血色先锋军的领主们感染瘟疫的时间,并且将它报告给巫妖王,以便对血色先锋军进行一轮有针对性的围剿。

输入格式

第 1 行:四个整数 n,m,a,b,表示军团矩阵有 n 行 m 列。有 a 个感染源,b 为血色敢死队中领主的数量。

接下来 a 行:每行有两个整数 x,y,表示感染源在第 x行第 y 列。

接下来 b 行:每行有两个整数 x,y,表示领主的位置在第 x 行第y 列。

输出格式

第 1 至 b 行:每行一个整数,表示这个领主感染瘟疫的时间,输出顺序与输入顺序一致。如果某个人的位置在感染源,那么他感染瘟疫的时间为 0。

输入

5 4 2 3
1 1
5 4
3 3
5 3
2 4

输出

3
1
3

#include<bits/stdc++.h>
using namespace std;
#define pi acos(-1)
#define mod 1000000007
#define ll long long
#define ull unsigned long long
#define mem(a) memset(a,0,sizeof(a))
#define cio ios::sync_with_stdio(false);
int next[4][2] = {{1,0},{0,1},{-1,0},{0,-1}};
int s[550][550];
int vis[550][550];
int n, m, a, b;
struct  node
{int x, y;
}q[250010], jud[250010];
int dis(int x1, int y1, int x2, int y2) //计算曼哈顿距离
{return abs(x1-x2)+abs(y1-y2);
}
void bfs(int sx, int sy) //广搜
{mem(q);int head = 1;int tail = 1;q[tail].x = sx;q[tail].y = sy;tail++;vis[sx][sy] = 0; //感染源的时间为0while(head<tail){int tx, ty;for(int i = 0; i < 4; i++){tx = q[head].x+next[i][0];ty = q[head].y+next[i][1];if(tx<1||tx>n||ty<1||ty>m) continue;int d = dis(sx,sy,tx,ty); //计算两点所需传播时间(曼哈顿距离)if(vis[tx][ty]>d){ //如果小于当前该位置所被感染的时间,进入下一轮搜索vis[tx][ty] = d;q[tail].x = tx;q[tail].y = ty;tail++;}        }head++;}
}
int main()
{cio;cin >> n >> m >> a >> b;for(int i = 1; i <= n; i++){for(int j = 1; j <= n; j++){vis[i][j] = mod;}}for(int i = 0; i < a; i++){cin >> jud[i].x >> jud[i].y;s[jud[i].x][jud[i].y] = 1; //标记感染源vis[jud[i].x][jud[i].y] = 0;}       for(int i = 0; i < a; i++){ //搜索每个感染源bfs(jud[i].x,jud[i].y);}for(int i = 0; i < b; i++){int xx, yy;cin >> xx >> yy;cout << vis[xx][yy] << endl;}return 0;
}

洛谷:P1332 血色先锋队(BFS)相关推荐

  1. 洛谷 P1332 血色先锋队

    洛谷 P1332 血色先锋队 第一次写bfs,纪念一下 qwq 之前一直都在写dfs,对bfs有莫名的恐惧 现在觉得...好像差不多 qwq 题目描述 巫妖王的天灾军团终于卷土重来,血色十字军组织了一 ...

  2. 洛谷P1332 血色先锋队

    此题源于洛谷P1332 链接奉上qwq:P1332 题目描述 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋 ...

  3. 洛谷P1332 血色先锋队(BFS多起点)

    题目背景 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他们将主力只好 ...

  4. 洛谷-P1332 血色先锋队(多元bfs)

    题目链接 在入队的时候,将所有的起点都入队然后统一搜索 #include<iostream> #include<queue> #include<cstring> u ...

  5. luogu P1332 血色先锋队[bfs]

    题目描述 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他们将主力只好 ...

  6. P1332 血色先锋队

    P1332 血色先锋队 题目描述 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重 ...

  7. P1332 血色先锋队(BFS)

    血色先锋队 题目描述 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他 ...

  8. 【一只蒟蒻的刷题历程】--- 【洛谷】P1332 血色先锋队(BFS)

    题目描述 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他们将主力只好 ...

  9. 血色冲锋队洛谷P1332(福建省历届夏令营)

    题目背景 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他们将主力只好 ...

最新文章

  1. 【c语言】测量最长字符串
  2. ubuntu python设置utf-8
  3. 将webstorm设置为eclipse风格
  4. Spring Boot 2.0(七):Spring Boot 如何解决项目启动时初始化资源
  5. [转载]Java数据库设计中的14个技巧
  6. C++成员访问限定符 private public
  7. Python | 程序以字符串长度打印单词
  8. 23装饰模式(Decorator Pattern)
  9. 转码与重定向的区别之于SpringMVC
  10. 《Go 语言程序设计》读书笔记(十)反射
  11. (100)FPGA单沿和双沿采样(下降沿采样)
  12. python创建控件,用 IronPython 创建和调用用户控件.doc
  13. 游戏用计算机配置表显卡,5000元电脑配置9代i5配GTX1660TI显卡配置清单(可装Win7)...
  14. 【李宏毅2020 ML/DL】补充:Structured Learning: Introduction Structured Linear Model
  15. Qt QT_BEGIN_NAMESPACE
  16. QQ音乐付费格式转换
  17. mysql文本类型_mysql里存大量文本的数据类型是text吗?请详细说明一下
  18. Python读取相对路径文件
  19. SpringBoot GA/PRE/SNAPSHOT含义
  20. (C语言代码分享):车辆信息管理系统源代码来了。

热门文章

  1. 女网红靠GPT-4交1000+男朋友,聊天按分钟收费,一周收入50万!
  2. html5 前端动态加载后端,Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)...
  3. C#:OleDbDataAdapter
  4. 如何无视硬件限制安装Windows 11?
  5. MySQL SQL语句EXISTS
  6. 问题解决:Scrapy Unknown command: crawl
  7. Autoware激光雷达与网络摄像机联合标定(四) Livox Horizon Autoware驱动安装
  8. 语音增强--卡尔曼滤波介绍及MATLAB实现
  9. 利用Excel VBA将坐标点直接转换为谷歌地球的kml格式文件(ExcelToKml)
  10. VBA学习笔记之Range.EntireRowRange.EntireColumn属性