欢迎光临散文网 会员登陆 & 注册

CF竞赛题目讲解_CF1775D(数论 + BFS)

2023-01-25 16:20 作者:Clayton_Zhou  | 我要投稿


AC代码

https://codeforces.com/contest/1775/submission/190458498


题意:

火星上有一种不同寻常的蜘蛛——二元蜘蛛。

目前,火星科学家正在观察一个由n只蜘蛛组成的群体,其中第i只蜘蛛有ai腿。

有些蜘蛛彼此是朋友。也就是说,如果gcd(ai,aj)≠1,则第i个和第j个蜘蛛是朋友,

即,存在某个整数k≥2,使得ai和aj同时被k除而无余数。

科学家发现蜘蛛可以发送信息。如果两个蜘蛛是朋友,那么它们可以在一秒钟内直接发送信息。否则,蜘蛛必须将消息传递给他的朋友,而朋友又必须将消息传给他的朋友。

依此类推,直到消息到达接收者。


让我们看一个例子。

假设一只8条腿的蜘蛛想要向一只15条腿的蜘蛛发送信息。

他不能直接做,因为gcd(8,15)=1。但他可以用六条腿通过蜘蛛发送信息,

因为gcd(8,6)=2,gcd(6,15)=3。因此,消息将在两秒内到达。

现在,科学家们正在观察第s只蜘蛛是如何向第t只蜘蛛发送信息的。

研究人员假设蜘蛛总是以最佳方式传递信息。因此,科学家需要一个程序来计算发送消息的最短时间,

并推断出最佳路线之一。


题解:

数论 + BFS


CF竞赛题目讲解_CF1775D(数论 + BFS)的评论 (共 条)

分享到微博请遵守国家法律