作为2020年的选手,完美的避开了这个拐弯抹角的2019年普及组的压轴题

这道题呢,看了一眼标签,赫然是一个奇偶性的图论问题,而且有单源最短路径

我呢,还是喜欢用dijstra,所以就用它了

dis数组要设两维,dis[N][2]

标记数组也要设成两维的,flag[N][2]

第二维时,0代表走了偶数步,1代表了奇数步

#include<bits/stdc++.h>
using namespace std;int n;
int m;
int qq;
int cnt=0;
int ed[200001];
int nxt[200001];
int head[200001];
int dis[100001][2];
int flag[100001][2];struct node
{int data;int dis;bool operator < (const node &a)const{return a.dis<dis;}//需要重载小于号,准备给小根堆使用
};priority_queue<node>q;//小根堆了void add(int u,int v)
{ed[++cnt]=v;nxt[cnt]=head[u];head[u]=cnt;
}//本人比较喜欢邻接表,所以就这么建边void dijkstra()
{q.push((node){1,0});dis[1][0]=0;//dijkstra函数死板的初始化while(!q.empty()){node temp=q.top();q.pop();int data=temp.data;for(int i=head[data];i!=0;i=nxt[i])//穷举临界点{int ch=ed[i];if(dis[ch][0]>dis[data][1]+1)//奇数步+1==现在点的偶数步{dis[ch][0]=dis[data][1]+1;if(!flag[ch][0]){flag[ch][0]=1;q.push((node){ch,dis[ch][0]});}}if(dis[ch][1]>dis[data][0]+1)//偶数步+1==现在点的奇数步{dis[ch][1]=dis[data][0]+1;if(!flag[ch][1]){flag[ch][1]=1;q.push((node){ch,dis[ch][1]});}}}}
}
int main()
{cin>>n>>m>>qq;for(int i=1;i<=m;i++){int x;int y;cin>>x>>y;add(x,y);add(y,x);}memset(dis,0x3f,sizeof(dis));dijkstra();for(int i=1;i<=qq;i++){int a;int l;cin>>a>>l;if(!head[1]) cout<<"No"<<endl;//要是没有别的点跟它相连的话,直接输出noelse {if(dis[a][l%2]<=l) cout<<"Yes"<<endl;//mod2得1或2,所以小于等于,就可以else cout<<"No"<<endl;}}return 0;
}

[CSP-J2019] 加工零件相关推荐

  1. 信息学奥赛一本通 1985:【19CSPJ普及组】加工零件 | 洛谷 P5663 [CSP-J2019] 加工零件

    [题目链接] ybt 1985:[19CSPJ普及组]加工零件 洛谷 P5663 [CSP-J2019] 加工零件 [题目考点] 图论 SPFA算法 [解题思路] 1. 问题分析 每个工人是一个顶点, ...

  2. [CSP-J 2019] 加工零件题解

    [CSP-J 2019] 加工零件 一.题目 题目描述 凯凯的工厂正在有条不紊地生产一种神奇的零件,神奇的零件的生产过程自然也很神奇.工厂里有 nnn 位工人,工人们从 1∼n1 \sim n1∼n ...

  3. 信息学奥赛第九节 —— 贪心算法(需要安排几位师傅加工零件 + 排队打水问题)

    贪心算法的特点 对于问题求解时,总是做出在当前来看是最好的选择的策略,即贪心算法不从整体来考虑问题.贪心算法与排序.高精度.背包等算法不同,没有一个特定的模板来表达贪心算法的过程. 贪心的步骤 抽象出 ...

  4. 全球及中国精密加工零件行业市场需求及未来发展展望报告2022-2028年

    全球及中国精密加工零件行业市场需求及未来发展展望报告2022-2028年 详情内容请咨询鸿晟信合研究网! [全新修订]:2022年3月 [撰写单位]:鸿晟信合研究网 1 精密加工零件行业概述 1.1 ...

  5. 【2019CSP-J普及组】T4 加工零件

    P5663 加工零件 题目传送门 SPFA对于每个点是可多次出队入队的,so数组要开大些(检查40分钟 2个WA) 思路: 举个栗子: 7号工人做一个第5个阶段的零件,1号工人是否要做原材料? 可以看 ...

  6. 数控加工零件工艺性分析

    数控机床的出现是工业一大进步的表现,它能较好的解决复杂.精密.小批.多变的零件加工问题,是一种灵活的.高效率的自动化机床.程序编制人员在利用数控机床加工时,首先得进行工艺分析. 一.机床的合理选用 在 ...

  7. 在数控机床上加工零件,主要取决于加工程序

    在数控机床上加工零件,主要取决于加工程序 数控机床的操作和监控全部在这个数控单元中完成,它是数控机床的大脑.与普通机床相比,数控机床有如下特点: 1.对加工对象的适应性强,适应模具等产品单件生产的特点 ...

  8. Python While循环与break语句_加工零件

    编程要求 本关的编程任务是补全line.py文件中的判断语句部分,具体要求如下: 填入当已处理零件数小于总零件数count < partcount时的while循环判断语句. 在停电时填入bre ...

  9. CNC数控机械加工零件的步骤

    CNC数控机械加工零件的步骤 CNC加工工艺的特点数控机械加工零件的步骤 CNC数控机械加工工艺也遵守机械加工切削规律,与普通机床的加工工艺大体相同.由于它是把计算机控制技术应用于机械加工之中的一种自 ...

  10. echarts柱形图x轴y轴互换_数控机床在加工零件时,突然出现X、Y、Z轴失控?如何处理...

    数控机床现在广泛应用于单品种大批量的零件加工中,由于稳定性强.精度高.效率高,取代了原来的普通机床.同时数控铣床.数控车床被大规模的配置到各产品自动化生产线上,实现了自动化无入管理.但在生产中由于数控 ...

最新文章

  1. mysql 查询 插入
  2. 利用vue进行页面滚动监听,上拉刷新
  3. delete语句与reference约束冲突怎么解决_mysql update语句和原数据一样会更新么
  4. React Native发布重构路线图
  5. (JAVA)Map集合
  6. 正则 null_正则表达式exec、match、test的区别
  7. oracle 12c 创建PDB用户即Local User (PDB与CDB)
  8. goroutine与panic不得不说的故事
  9. bae php微信配置,使用BAE3.0搭建微信开发环境
  10. 腾讯回应发布虚假广告被罚20万;苹果客服回应iPhone 12屏幕发绿;Chrome 87 正式版发布|极客头条...
  11. 不知道不 OK!53 个 Python 经典面试题详解
  12. 20151210编译高通的qca9531的wireless版本 修改版本4
  13. msf-Msfvenonm生成后门木马
  14. social-share,社会化分享组件之jquery版
  15. Java - Timestamp cannot be cast to String
  16. Catagory用法
  17. C语言:记录在主线程中停止子线程
  18. python秒表游戏代码_python编程实战:制作秒表程序
  19. atcoder abc242 c题 1111gal password
  20. 【Python】python的加、减、乘、除、取整、取余计算

热门文章

  1. 靠!我被项目经理和同事嘲笑了,因为不会远程debug调试...
  2. 携手强化「内容审核」能力,融云与数美科技达成战略合作
  3. 华三ap设置无线服务器,中小企业使用华三小贝AP建设无线网(wifi)方案
  4. Win7设置开机密码后开机不需要输入密码
  5. ROS笔记(一)xxx.launch文件详解
  6. Ubuntu16.04中修复Pycharm问号图标问题
  7. 华师大 OJ 3036
  8. matlab受力分析,基于Matlab的多支座蒸压釜的受力分析和强度计算
  9. .NET前后分离解决方案
  10. Docker的学习与使用