P1332 血色先锋队
P1332 血色先锋队
题目描述
巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物。孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他们将主力只好聚集了起来,以抵抗天灾军团的围剿。可怕的是,他们之中有人感染上了亡灵瘟疫,如果不设法阻止瘟疫的扩散,很快就会遭到灭顶之灾。大领主阿比迪斯已经开始调查瘟疫的源头。原来是血色先锋军的内部出现了叛徒,这个叛徒已经投靠了天灾军团,想要将整个血色先锋军全部转化为天灾军团!无需惊讶,你就是那个叛徒。在你的行踪败露之前,要尽快完成巫妖王交给你的任务。
军团是一个N行M列的矩阵,每个单元是一个血色先锋军的成员。感染瘟疫的人,每过一个小时,就会向四周扩散瘟疫,直到所有人全部感染上瘟疫。你已经掌握了感染源的位置,任务是算出血色先锋军的领主们感染瘟疫的时间,并且将它报告给巫妖王,以便对血色先锋军进行一轮有针对性的围剿。
输入输出格式
输入格式:
第1行:四个整数N,M,A,B,表示军团矩阵有N行M列。有A个感染源,B为血色敢死队中领主的数量。
接下来A行:每行有两个整数x,y,表示感染源在第x行第y列。
接下来B行:每行有两个整数x,y,表示领主的位置在第x行第y列。
【数据规模】
1<=M,N<=500
1<=A,B<=M*N
输出格式:
第1至B行:每行一个整数,表示这个领主感染瘟疫的时间,输出顺序与输入顺序一致。如果某个人的位置在感染源,那么他感染瘟疫的时间为0。
输入输出样例
5 4 2 3
1 1
5 4
3 3
5 3
2 4
3
1
3
说明
如下图,标记出了所有人感染瘟疫的时间以及感染源和领主的位置。

广搜,搜全图
#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std; const int MAXN = ;
struct node{
int x,y;
}cur,nxt;
struct que{
int x,y;
}que[];
int ans[MAXN][MAXN];
bool v[MAXN][MAXN];
int dx[] = {,,,-};
int dy[] = {,-,,};
int a,b,n,m;
queue<node>q; int main()
{
scanf("%d%d%d%d",&n,&m,&a,&b);
for (int x,y,i=; i<=a; ++i)
{
scanf("%d%d",&x,&y);
cur.x = x;
cur.y = y;
q.push(cur);
v[x][y] = true;
ans[x][y] = ;
}
for (int x,y,i=; i<=b; ++i)
{
scanf("%d%d",&x,&y);
que[i].x = x;
que[i].y = y;
}
while (!q.empty())
{
cur = q.front();
q.pop();
for (int i=; i<; ++i)
{
int xx = cur.x+dx[i];
int yy = cur.y+dy[i];
if (xx>&&yy>&&xx<=n&&yy<=m&&!v[xx][yy])
{
v[xx][yy] = true;
ans[xx][yy] = ans[cur.x][cur.y]+;
nxt.x = xx;
nxt.y = yy;
q.push(nxt);
}
}
}
for (int i=; i<=b; ++i)
printf("%d\n",ans[que[i].x][que[i].y]);
return ;
}
P1332 血色先锋队的更多相关文章
- 洛谷 P1332 血色先锋队
		P1332 血色先锋队 题目描述 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重 ... 
- luogu P1332 血色先锋队
		题目描述 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他们将主力只好 ... 
- luogu P1332 血色先锋队[bfs]
		题目描述 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他们将主力只好 ... 
- 题解 【洛谷P1332】血色先锋队
		题面:https://www.luogu.org/problemnew/show/P1332 很容易看出,这是一个典型的广度优先搜索,也就是众多OIer口中的bfs. 先给各位普及一下bfs(部分来自 ... 
- 【u007】血色先锋队
		Time Limit: 1 second Memory Limit: 128 MB [问题描述] 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气 ... 
- [CODEVS1537] 血色先锋队 - BFS
		题目描述 Description 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重 ... 
- P1189 SEARCH—搜索
		将这题加进来的原因 因为他的优化令人眼前一新! 题目传送门() 相似的题目之 血色先锋队 ↑这一题也要用到标记数组 优化!!! 对于一个位置, 如果他在同样的深度再一次被访问,那他接下来所走的路径,所 ... 
- the usage of map.put
		这个不用要的那么详细,对于应用来说,比如举个例子: Map map = new HashMap();map.put("key","value");这样就存入了一 ... 
- HTML、CSS选择题
		Java EE软件工程师认证考试 试题库-选择题 一. 选择题(包括单选和双选) 1.D 以下( )是HTML常用的块状标签(选择一项) A. <span> B. < ... 
随机推荐
- chpasswd
			功能说明:从标准输入中读取一定格式的用户名.密码来批量更新用户的密码,其格式为 “用户名:密码”. 参数选项:-e 默认格式是明文密码,使用-e参数则需要加密的密码. 
- on-session问题
			.D:\0kecheng\bos\bosv2.0_chapter03.无条件查询. 方法1.@JSON(serialize=false)是注解排除不需要加载的实体类上,找到它的get方法,解决no-s ... 
- 【luogu P1113 杂务】 题解
			题目链接:https://www.luogu.org/problemnew/show/P1113 菜 #include <queue> #include <cstdio> #i ... 
- js 3秒后跳转页面的实现代码
			隔多少秒后自动跳转到其它页(js脚本) 方法一: $(function(){ Load(URL); }) var secs = 3; //倒计时的秒数 var URL = "<?= u ... 
- 消息中间件JMS(三)
			1. Spring整合JMS 1.1消息生产者 创建工程springJMS_producer,并在pom文件中引入SpringJms .activeMQ以及单元测试相关依赖 <propertie ... 
- wordpress二次开发第一个jquery对比
			$(document).ready(function(){ $("input").focus(function(){ $("input").css(" ... 
- code First 四
			先从现有数据库获取代码: 我们创建模型的时候选择Code First就可以了 public ModelStudent() : base("name=ModelStudent") ... 
- vue.js中的slot
			vue.js 中的 slot 一.slot 的作用 调用组件的时候,对于数据,我们会用props将数据从父组件传至子组件.但是,如果从父组件到子组件,单纯是页面局部渲染的改变,slot会更合适. 二. ... 
- 20181009noip HZ EZ两校联考sum(莫队,组合数学)
			题面戳这里 思路: noip考莫队???!!! 考场上死活没往这方面想啊!!!数据分治忘写endl50pts滚粗了 这里每个询问都有n,m两个参数 我们可以把它看做常规莫队中的l和r 然后利用组合数的 ... 
- 【Nowcoder 上海五校赛】二数(模拟)
			题目描述: 我们把十进制下每一位都是偶数的数字叫做“二数”. 小埃表示自己很聪明,最近他不仅能够从小数到大:2,3,4,5....,也学会了从大数到小:100,99,98...,他想知道从一个数开始数 ... 
