1 条题解

  • 0
    @ 2025-8-24 21:16:30

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar chen_zhe
    Aya 敲可爱的~

    搬运于2025-08-24 21:16:29,当前版本为作者最后更新于2024-07-03 18:43:34,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    欢迎报名洛谷网校,期待和大家一起进步!

    如果一个数能是序列中所有数的倍数,那么它一定是序列中的最大值。例如 [1,2,3,6][1,2,3,6] 中,66 是所有数的倍数,而且它是序列中的最大值。

    倘若其不是序列中的最大值,假设它为 ss,而序列中有一个更大的数 tt,那么 ss 显然不可能是 tt 的正整数倍。

    因此,我们要找到序列中的最大值 tt,将其对每个 aia_i 去试除,判断是否为每个 aia_i 的倍数。如果存在 aia_i 使得 tt 不是 aia_i 的倍数,则不存在,输出 No;否则存在,输出 Yes

    int t; cin >> t;
    while (t--) {
    	int n, maxa = 0;
    	cin >> n;
    	for (int i = 1; i <= n; i++) {
    		cin >> a[i];
    		maxa = max(a[i], maxa);
    	}
    	bool flag = true;
    	for (int i = 1; i <= n; i++) {
    		if (maxa % a[i] != 0) {
    			flag = false;
    			break;
    		}
    	}
    	if (flag) puts("Yes");
    	else puts("No");
    }
    
    • 1

    信息

    ID
    10486
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者