ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CSP-J2019 加工零件

2021-03-03 04:32:13  阅读:311  来源: 互联网

标签:int next read while 零件 isdigit J2019 CSP getchar


2019 CSP 普及组的 T4,直接讲思路吧。

假设每个点到点1只有唯一路径,那么我们有:

  1. L<该路径长度 ,则对这个点的答案必定是"No"。
  2. L>=该路径长度 且 奇偶性与该路径长度相同,则对这个点的答案为"Yes",否则为"No"。

令这个唯一路径为最短路,则我们只需要知道每个点到点1的奇最短路和偶最短路即可。

附上代码:

/*code by Szzkp*/

#include <bits/stdc++.h>

#define Rei register int
#define ll long long

using namespace std;

inline void read(int &x) {
	x = 0;
	char f = 0, c = getchar();
	while(!isdigit(c)) f = c=='-', c = getchar();
	if(f) while(isdigit(c)) x = x*10-c+48, c = getchar();
	else while(isdigit(c)) x = x*10+c-48, c = getchar();
}

const int inf = 0x3f3f3f3f;
const int N = 1e5+5, M = 1e5+5;

int n, m, q, cnt;
int h[N], d[N][2];

struct edge {
	int next, to;
	edge(int nex = 0, int t = 0) {
		next = nex, to = t;
	}
} b[M<<1];

inline void link(int u, int v) {
	b[++cnt] = edge(h[u], v), h[u] = cnt;
}

void bfs() {
	queue<int> q;
	q.push(1), d[1][0] = 0;
	while(!q.empty()) {
		int x = q.front(); q.pop();
		for(Rei i = h[x]; i; i = b[i].next) {
			int y = b[i].to, in = 0;
			if(d[x][1] + 1 < d[y][0]) in = 1, d[y][0] = d[x][1] + 1;
			if((d[x][0] ^ 1) < d[y][1]) in = 1, d[y][1] = (d[x][0] ^ 1);
			if(in) q.push(y);
		}
	}
}

int main() {
	read(n), read(m), read(q);
	for(Rei i = 1; i <= m; ++i) {
		int u, v;
		read(u), read(v);
		link(u, v), link(v, u);
	}
	memset(d, 0x3f, sizeof(d));
	bfs();
	for(Rei i = 1; i <= q; ++i) {
		int x, L;
		read(x), read(L);
		printf(d[x][L&1] <= L? "Yes\n":"No\n");
	}
	return 0;
}

感谢阅读QAQ!

标签:int,next,read,while,零件,isdigit,J2019,CSP,getchar
来源: https://www.cnblogs.com/Szzkp/p/14472347.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有