【问题描述】
https://www.luogu.com.cn/problem/P5663

【算法分析】
若结点u到结点v间存在长度为L的路径,那么也一定存在长度为L+2、L+4、L+6、……的路径。因为这可以通过重复经过路径中的某些结点来实现。而且,这些路径长度的奇偶性相同,即若L为奇数,则L+2、L+4、L+6等也为奇数,若L为偶数,则L+2、L+4、L+6等也为偶数。
若结点u到结点v间存在长度为L的路径,且L大于等于结点u到结点v间的最短路径dis,即L>=dis,那么当结点v生产第L阶段的零件时,需要结点u提供原材料。
特殊情况需要特判,即当结点u与其他结点均不连通时,直接输出"No"即可。

【算法代码】

/* 链式前向星存图
val[idx] 表示第 idx 条边的权值。
e[idx] 表示第 idx 条边的终点。
ne[idx] 表示与第 idx 条边同起点的最近一次被添加的边的编号。
h[a] 表示以结点 a 为起点的最近一次被添加的边的编号。这个表述是在使用 ne[idx]=h[a] 时,也即使用 h[a]=idx++ 更新 h[a] 之前而言的。要特别注意这个语境。
*/#include <bits/stdc++.h>
using namespace std;const int N=100010;
const int M=N<<1;int h[N],e[M],ne[M],idx;
int dis[N][2]; //dis[u][0]/dis[u][1]:Shortest path to u with even/odd length
int q[M]; //Number of work ordersvoid add(int a,int b) {e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}void bfs() {memset(dis,0x3f3f3f3f,sizeof(dis));dis[1][0]=0; //The shortest path length is 0 when it reaches itself through zero edgesint hh=0, tt=0;q[tt]=1; //enqueue node 1while(hh<=tt) {int u=q[hh++];for(int i=h[u]; i!=-1; i=ne[i]) {int v=e[i];//Extend from u through an odd number of edges to v,//update dis[v][0] if relaxation can be done.if(dis[v][0]>dis[u][1]+1) {dis[v][0]=dis[u][1]+1;q[++tt]=v;}//Extend from u through an even number of edges to v,//update dis[v][1] if relaxation can be done.if(dis[v][1]>dis[u][0]+1) {dis[v][1]=dis[u][0]+1;q[++tt]=v;}}}
}int main() {int n,m,q; //number of workers, number of conveyor belts, number of work orderscin>>n>>m>>q;memset(h,-1,sizeof(h));for(int i=0; i<m; i++) {int u,v;cin>>u>>v;add(u,v), add(v,u); //undirected graph}bfs();while(q--) {int u,L;cin>>u>>L;if(h[1]==-1) cout<<"No"<<endl; //Node 1 is disconnected with other pointselse if(dis[u][L&1]<=L) cout<<"Yes"<<endl;else cout<<"No"<<endl;}return 0;
}/*
in1:
3 2 6
1 2
2 3
1 1
2 1
3 1
1 2
2 2
3 2out1:
No
Yes
No
Yes
No
Yes
---------
in2:
5 5 5
1 2
2 3
3 4
4 5
1 5
1 1
1 2
1 3
1 4
1 5out2:
No
Yes
No
Yes
Yes
*/

【参考文献】
https://blog.csdn.net/qiaoxinwei/article/details/108982789

2019 CCF CSP-J2 第4题:加工零件 ← 链式前向星相关推荐

  1. U81206:链式前向星模板题

    [题目来源] https://www.luogu.com.cn/problem/U81206 [题目描述] 链式前向星模板题. 读入n个点,m条边,以及flag.若flag==1,则图有向,否则无向. ...

  2. python认证考试_Python入门习题(39)——CCF CSP认证考试真题:公共钥匙盒

    CCF CSP认证考试真题:共钥匙盒 问题描述 试题编号:201709-2 试题名称:公共钥匙盒 时间限制:1.0s 内存限制:256.0MB 问题描述 有一个学校的老师共用N个教室,按照规定,所有的 ...

  3. CCF CSP认证菜鸟刷题日志

    CCF CSP菜鸟刷题日志(c/c++) 本萌新写给自己看的,要是有大佬路过,请多多指教orz 立个flag:每日一更,至201903 9月15ccf csp,冲鸭! 今天(2019.8.18)起每天 ...

  4. 2019年3月CCF CSP 认证题解第一题

    第一题:201903-1 [题目背景] 在数据分析中,最小值最大值以及中位数是常用的统计信息. [题目描述] 老师给了你n个整数组成的测量数据,保证有序(可能为升序或降序),可能存在重复的数据.请统计 ...

  5. CCF CSP认证历年真题 满分代码(持续更新中)

    目标 在接下来的半年到一年时间内,补全CCF认证历年真题(A-D)的满分代码(E题随缘). 考虑到CCF认证这个东西是可以混分的,我计划对D.E题额外增加部分分代码,或许有助于不同层次的选手备赛. 除 ...

  6. python认证考试有哪些_Python入门习题(19)——CCF CSP认证考试真题:中间数

    问题描述 试题编号:201703-1 试题名称:分蛋糕 时间限制:1.0s 内存限制:256.0MB 问题描述 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, ...

  7. Python入门习题(19)——CCF CSP认证考试真题:分蛋糕

    问题描述 试题编号: 201703-1 试题名称: 分蛋糕 时间限制: 1.0s 内存限制: 256.0MB 问题描述 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为 ...

  8. 【2019 CSP-JのT4】[洛谷P5663]加工零件【最短路 · 变式】

    题目描述 linklinklink 凯凯的工厂正在有条不紊地生产一种神奇的零件,神奇的零件的生产过程自然也很神奇.工厂里有 n 位工人,工人们从 1∼n 编号.某些工人之间存在双向的零件传送带.保证每 ...

  9. 【CCCC】L2-030 冰岛人 (25分) 模拟题,二叉树链式存储,从底部向上

    problem L2-030 冰岛人 (25分) 2018年世界杯,冰岛队因1:1平了强大的阿根廷队而一战成名.好事者发现冰岛人的名字后面似乎都有个"松"(son),于是有网友科普 ...

最新文章

  1. 隐藏表白图“我喜欢你”就像你看不见但它也依然存在
  2. 如果算力足够根本不需要标注太多数据
  3. 【多线程】ThreadPoolExecutor类万字源码解析(注解超级详细)
  4. JavaScript window.setTimeout() 的详细用法
  5. Python爬取京东商品
  6. 【译】A gentle introduction to self-sovereign identity
  7. 专家观点:即使在云中 硬件同样至关重要
  8. python捕获摄像头帧_Xuggler教程:帧捕获和视频创建
  9. shiro框架的学习
  10. 全面解析腾讯最新开源 loT 操作系统 TencentOS tiny!
  11. iOS照片缩略图thumbnail模糊问题
  12. 利用D3D抓取GPU数据
  13. string与stream互相转换
  14. [2019CCPC网络赛][hdu6704]K-th occurrence(后缀数组主席树)
  15. DELL RAID卡管理工具 MegaRAID Storage Manager(偏重RAID常用管理命令)
  16. ISO 14001环境管理体系中环境因素的识别
  17. Poker Ⅱ 机械键盘使用说明书 自备
  18. FME实现三调地类变化流量表制作
  19. 新宝美股三大指数集体高开
  20. IDO-SBC3019-V1B:PX30 超强 CPU 搭载 Android/Linux 系统(Android8.1)

热门文章

  1. 【HDU6608 Fansblog】求很大很大的数的阶乘
  2. 首次!TinyML低功耗边缘侧机器学习技术论坛-亚洲分会来到中国!
  3. ICC布局布线 实践课
  4. Fractal Streets 递归+坐标转换
  5. 2020.7.7 ETH价格分析
  6. Apache Flink 1.14.4 on yarn ha环境搭建
  7. 用Python做数据分析之数据处理及数据提取
  8. pytorch入门(二):数据加载和处理
  9. CAD得到填充名称(网页版)
  10. 数字图像处理 图像形态学处理