题目描述

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

军团是一个 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. 字符串的截取和替换常用方法
  2. a标签被选择的底色_实施特殊管理,婴配乳粉标签书写有规矩(下)
  3. ORM 和 JDBC有何不一样
  4. DNS服务器以及正向名称解析机制
  5. Linux vim剪切/删除命令(结合p粘贴使用就是剪切)
  6. 【渝粤题库】广东开放大学 Linux操作系统 形成性考核
  7. VS2010 教程:创建一个 WPF 应用程序 (第一节)
  8. QuickPart : 用户控件包装器 for Office SharePoint Server 2007
  9. 自动化运维工具ansible的安装部署(图文详解!)
  10. Android Textview控件基础属性
  11. 利用SAP Leonardo做图片近似查找 ——Python实现
  12. 计算机重新启动操作处于挂起状态,PHOTOSHOPCS5安装程序检测到计算机重新启动操作可能处于挂起状态...
  13. db2数据库常见问题处理
  14. 全国离婚率下跌约五成是因为它?
  15. objectArx ---反应器
  16. ecmascript2015
  17. Partitioning by Palindromes UVA - 11584(DP)
  18. Python简洁出入库系统(批量出入库)
  19. 微带线特性阻抗计算公式_几种计算微带线特性阻抗的方法.pdf
  20. 人员规范操作行为识别算法

热门文章

  1. 基于C++的图书推荐与管理系统
  2. C# 37. textbox滚动条与多行
  3. 关键词采集器-关键词自动采集发布
  4. 码龄0.4年的python成长之路(八):门牌数字制作
  5. python学习:python serial
  6. uploadify3.1 php,jQuery无刷新上传之uploadify3.1简单使用
  7. Python装饰器中@wraps作用
  8. Virtualbox源码分析10 CPU manager2:APIs
  9. pc服务器的虚拟化技术,浅谈基于Vmware的PC服务器虚拟化技术
  10. java从头再来--java