[CSP-J2019] 加工零件
作为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] 加工零件相关推荐
- 信息学奥赛一本通 1985:【19CSPJ普及组】加工零件 | 洛谷 P5663 [CSP-J2019] 加工零件
[题目链接] ybt 1985:[19CSPJ普及组]加工零件 洛谷 P5663 [CSP-J2019] 加工零件 [题目考点] 图论 SPFA算法 [解题思路] 1. 问题分析 每个工人是一个顶点, ...
- [CSP-J 2019] 加工零件题解
[CSP-J 2019] 加工零件 一.题目 题目描述 凯凯的工厂正在有条不紊地生产一种神奇的零件,神奇的零件的生产过程自然也很神奇.工厂里有 nnn 位工人,工人们从 1∼n1 \sim n1∼n ...
- 信息学奥赛第九节 —— 贪心算法(需要安排几位师傅加工零件 + 排队打水问题)
贪心算法的特点 对于问题求解时,总是做出在当前来看是最好的选择的策略,即贪心算法不从整体来考虑问题.贪心算法与排序.高精度.背包等算法不同,没有一个特定的模板来表达贪心算法的过程. 贪心的步骤 抽象出 ...
- 全球及中国精密加工零件行业市场需求及未来发展展望报告2022-2028年
全球及中国精密加工零件行业市场需求及未来发展展望报告2022-2028年 详情内容请咨询鸿晟信合研究网! [全新修订]:2022年3月 [撰写单位]:鸿晟信合研究网 1 精密加工零件行业概述 1.1 ...
- 【2019CSP-J普及组】T4 加工零件
P5663 加工零件 题目传送门 SPFA对于每个点是可多次出队入队的,so数组要开大些(检查40分钟 2个WA) 思路: 举个栗子: 7号工人做一个第5个阶段的零件,1号工人是否要做原材料? 可以看 ...
- 数控加工零件工艺性分析
数控机床的出现是工业一大进步的表现,它能较好的解决复杂.精密.小批.多变的零件加工问题,是一种灵活的.高效率的自动化机床.程序编制人员在利用数控机床加工时,首先得进行工艺分析. 一.机床的合理选用 在 ...
- 在数控机床上加工零件,主要取决于加工程序
在数控机床上加工零件,主要取决于加工程序 数控机床的操作和监控全部在这个数控单元中完成,它是数控机床的大脑.与普通机床相比,数控机床有如下特点: 1.对加工对象的适应性强,适应模具等产品单件生产的特点 ...
- Python While循环与break语句_加工零件
编程要求 本关的编程任务是补全line.py文件中的判断语句部分,具体要求如下: 填入当已处理零件数小于总零件数count < partcount时的while循环判断语句. 在停电时填入bre ...
- CNC数控机械加工零件的步骤
CNC数控机械加工零件的步骤 CNC加工工艺的特点数控机械加工零件的步骤 CNC数控机械加工工艺也遵守机械加工切削规律,与普通机床的加工工艺大体相同.由于它是把计算机控制技术应用于机械加工之中的一种自 ...
- echarts柱形图x轴y轴互换_数控机床在加工零件时,突然出现X、Y、Z轴失控?如何处理...
数控机床现在广泛应用于单品种大批量的零件加工中,由于稳定性强.精度高.效率高,取代了原来的普通机床.同时数控铣床.数控车床被大规模的配置到各产品自动化生产线上,实现了自动化无入管理.但在生产中由于数控 ...
最新文章
- mysql 查询 插入
- 利用vue进行页面滚动监听,上拉刷新
- delete语句与reference约束冲突怎么解决_mysql update语句和原数据一样会更新么
- React Native发布重构路线图
- (JAVA)Map集合
- 正则 null_正则表达式exec、match、test的区别
- oracle 12c 创建PDB用户即Local User (PDB与CDB)
- goroutine与panic不得不说的故事
- bae php微信配置,使用BAE3.0搭建微信开发环境
- 腾讯回应发布虚假广告被罚20万;苹果客服回应iPhone 12屏幕发绿;Chrome 87 正式版发布|极客头条...
- 不知道不 OK!53 个 Python 经典面试题详解
- 20151210编译高通的qca9531的wireless版本 修改版本4
- msf-Msfvenonm生成后门木马
- social-share,社会化分享组件之jquery版
- Java - Timestamp cannot be cast to String
- Catagory用法
- C语言:记录在主线程中停止子线程
- python秒表游戏代码_python编程实战:制作秒表程序
- atcoder abc242 c题 1111gal password
- 【Python】python的加、减、乘、除、取整、取余计算
热门文章
- 靠!我被项目经理和同事嘲笑了,因为不会远程debug调试...
- 携手强化「内容审核」能力,融云与数美科技达成战略合作
- 华三ap设置无线服务器,中小企业使用华三小贝AP建设无线网(wifi)方案
- Win7设置开机密码后开机不需要输入密码
- ROS笔记(一)xxx.launch文件详解
- Ubuntu16.04中修复Pycharm问号图标问题
- 华师大 OJ 3036
- matlab受力分析,基于Matlab的多支座蒸压釜的受力分析和强度计算
- .NET前后分离解决方案
- Docker的学习与使用