A. 徐老师的图论构造

    传统题 1000ms 256MiB

徐老师的图论构造

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

最近徐老师刚刚学习了 dijktra 算法,准备实践一下,但是找不到题目怎么办呢?不如自己出数据吧!

于是徐老师先随机生成了 nn 个整数 a1ana_1 \dots a_n

现在徐老师要在这些点之间随机生成一些单向边表示一个点可以到达另一个点,于是徐老师设计了一个算法:

  1. 先枚举所有 x(1n)x(1 \sim n)
  2. 在选中 xx 的情况下枚举所有 y(xn)y(x \sim n)
  3. x,yx,y 满足 gcd(ax,ay)>1gcd(a_x, a_y) > 1 则认为从 xx 出发可以直接到达 yy

接下来徐老师随机生成了 mm 次询问,每次询问一组整数 (x,y)(x,y),问从 xx 出发是否存在路径能够到达 yy,若能到达则输出 Yes,否则输出 No

现在徐老师已经生成了所有数据,他想和你对拍一下,请你也写一份代码解决这个问题

P.S. gcd(x,y)gcd(x,y) 是指计算 (x,y)(x,y) 的最大公约数,特别的我们认为:

  1. gcd(0,x)=gcd(x,0)=x;gcd(0,x)=gcd(x,0)=x;
  2. gcd(0,0)=0;gcd(0,0)=0;
  3. gcd(x,x)=x;gcd(x,x)=x;

输入格式

第一行包含两个整数 n,mn, m 含义如题。

第二行包含 nn 个整数 a1ana_1 \dots a_n

接下来 mm 行,每行包含两个整数 (x,y)(x,y),代表一组询问。

输出格式

对于每次询问输出答案,若 xx 出发能到达 yy 则输出 Yes,否则输出 No

数据范围

对于 40%40\% 的数据, n,m1000,0ai10n, m \leq 1000,0 \leq a_i \leq 10

对于 80%80\% 的数据, n,m1000,0ai500n, m \leq 1000,0 \leq a_i \leq 500

对于 100%100\% 的数据, n,m105,0ai1000,xyn, m \leq 10^5, 0 \leq a_i \leq 1000, x \leq y

输入样例

5 4
1 3 0 2 1
1 3
2 4
1 4
1 1

输出样例

No
Yes
No
Yes

样例解释

第一个询问,从 a1a_1a3a_3,由于 gcd(1,0)=1gcd(1,0) = 1,所以不能到达,输出 No。 第二个询问,从 a2a_2a4a_4,可以通过 a3a_3 到达,所以输出 Yes。 第三个询问,从 a1a_1a4a_4,由于没有点的 gcdgcd 值大于 11,所以不能到达,输出 No。 第四个询问,从 a1a_1a1a_1,可以到达自身,所以输出 Yes

24CSP-S暑假模拟赛Day4

未参加
状态
已结束
规则
IOI
题目
3
开始于
2024-8-2 16:30
结束于
2024-8-15 4:30
持续时间
300 小时
主持人
参赛人数
16