多源bfs Spicy Restaurant
Spicy Restaurant
多源bfs+一个递推
做了好多题,这道题算做的比较少的题。
#include <bits/stdc++.h>using namespace std;
int n,m,q,cnt,head[200005],w[100005],inf,dis[100005][105];
struct node
{int to,nxt;
}e[200005];void add(int u,int v)
{e[++cnt].to=v;e[cnt].nxt=head[u];head[u]=cnt;
}
void bfs(int val)
{queue<int>q;for(int i=1;i<=n;i++)if(w[i]==val)q.push(i),dis[i][val]=0;while(!q.empty()){int now=q.front();q.pop();for(int i=head[now];i;i=e[i].nxt){int j=e[i].to;if(dis[j][val]!=inf) //判断重复访问的continue;dis[j][val]=dis[now][val]+1;q.push(j);}}
}
int main()
{memset(dis,0x3f,sizeof dis);inf=dis[0][0];scanf("%d%d%d",&n,&m,&q);for(int i=1;i<=n;i++)scanf("%d",&w[i]);for(int i=1;i<=m;i++){int u,v;scanf("%d%d",&u,&v);add(u,v);add(v,u);}for(int i=1;i<=100;i++)bfs(i);for(int i=1;i<=n;i++){for(int j=1;j<=100;j++){dis[i][j]=min(dis[i][j],dis[i][j-1]);}}while(q--){int p,a;scanf("%d%d",&p,&a);if(dis[p][a]==inf)printf("-1\n");elseprintf("%d\n",dis[p][a]);}return 0;
}
多源bfs Spicy Restaurant相关推荐
- L. Spicy Restaurant(多源BFS+递推)
L. Spicy Restaurant 题目链接 https://codeforces.com/gym/103117/problem/L 思路: 1.考虑到1≤ai≤100 ,一开始直接使用BFS,对 ...
- 2021 ICPC 四川省赛 L - Spicy Restaurant(多源BFS,DP)
Spicy Restaurant https://codeforces.com/gym/103117/problem/L 题目大意:给一个 nnn 个点 mmm 条边的点权图.再给出 qqq 个询问, ...
- Spicy Restaurant (暴力多源bfs)
Link 题意: 有n个城市,每个城市有个辣度,给你个图,有q次询问求某个点开始,忍耐度为w,求最近辣度<=w的最短路,边权为1. q<=5e5n<=1e5m<=1e5wi,w ...
- gym103117L. Spicy Restaurant
gym103117L. Spicy Restaurant 题意: 有n个点,m个边,每个点都有一个能量值,现在有q个人,每个人有自己的能量值,现在每个人都要去离自己最近且能量值小于等于自身的点. 1& ...
- Gym 103117 Problem - Spicy Restaurant
Gym 103117 Problem - Spicy Restaurant 原题地址 题目类型:搜索.BFS.打表 题意: 有 n 个火锅店位置为 1-n,每个火锅店都有一个辣度,并且 n 个火锅店之 ...
- L. Spicy Restaurant
L. Spicy Restaurant 题意:无向图的每个顶点有一个属性wi,Q个询问,第i个询问给定顶点p和价值a,问距离p最近的wi<a的i距离p有多远 题解: w的范围很小,直接做100次 ...
- 算法提高课-搜索-多源BFS-AcWing 173. 矩阵距离:bfs、多源bfs
题目分析 来源:acwing 分析: 0表示住户,1表示超市,这些超市是等价的.求每个住户到达超市的最近距离. 多源bfs在做的时候,把所有超市的距离都初始化为0,然后压入队列. 这里用的是数组模拟队 ...
- CSP认证201409-4 最优配餐[C++题解]:bfs、多源bfs、最短路、图论
文章目录 题目解答 题目链接 题目解答 来源:acwing 分析: 有很多起点S,同时有很多终点T,求每个终点到起点中最短的路,只要是到达其中一个起点就行.所以这是一个多源bfs的题目. ac代码 # ...
- LeetCode 286. 墙与门 多源BFS和DFS
思路1: DFS,对于每个门进行一次DFS搜索,记录每个位置对每个门的距离,当有更小距离的门时更新这个数值 public void WallsAndGates(int[][] rooms) {for ...
最新文章
- 汉化 Hirens.BootCD 中的 XP 系统
- 苹果笔记本电脑 javaee安装_苹果下周举行发布会 重磅推出新款MacBook Air和MacBook Pro...
- 【Linux 内核】编译 Linux 内核 ⑤ ( 查看 .config 编译配置文件 | 正式编译内核 )
- 全球及中国手机便携式移动电源行业营销模式及投资竞争力分析报告2021-2027年版
- Java黑皮书课后题第10章:*10.22(实现String类)Java库中提供了String类,给出你自己对下面方法的实现(将新类命名为MyString1)
- [深度学习] 自然语言处理--- 基于Keras Bert使用(下)
- oracle 还原归档,ORACLE RMAN 还原归档日志
- android怎样判断插入数据是否成功_Android 端 V1/V2/V3 签名的原理
- NLP之路-python爬虫
- 未来科技计算机作文600字,未来科技发展_600字
- bag文件加载及可视化显示
- SharePoint Server 2016 部署安装(七)—— 配置SharePoint Server
- python通过类名创建对象_如何在Python中为自动创建的类对象分配名称
- Python黑魔法 --- 异步IO( asyncio) 协程
- 《Android第一行代码(第二版)》源码
- 淘宝API 如何获取颜色 尺码 属性表
- 勒索病毒锁死文件加密
- 皮尔逊相关系数和检验P值
- LoRa节点如何以ABP方式入网TTN服务器?
- 人脸验证与人脸识别(Face verification and Face identification / recognition)