Codeforces Round 1014 (Div. 2)2092A - Kamilka and the Sheep c++

作者昨天第一次打cf,就取得了通过0题(+369)的好成绩

Div.2对于作者来说还是太难了点。。。

下面是A题的题目以及题解

题目链接k

可以概括为:如何选出两个数,加上d,使它们的gcd最大?

如果直接暴力求解会超出时间限制(像作者一样)

不过该题可以做一些数学上的转化

对于两个数ai和aj,加上d后是ai+d和aj+d,求gcd,可以根据gcd的性质做出转化(辗转相除法)

当aj+d是ai-aj的倍数时,gcd可以最大化,此时gcd=ai-aj

所以我们只要找到max和min然后相减就行

cpp 复制代码
#include <iostream>
using namespace std;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    while (t--) {
        int n, k;
        cin >> n;
        int max, min;
        cin >> k;
        max = min = k;
        for (int j = 1; j < n; j++) {
            cin >> k;
            if (k > max) max = k;
            if (k < min) min = k;
        }
        cout << (max - min) << "\n";
    }
    return 0;
}
相关推荐
2501_9248792613 分钟前
强反光干扰下漏检率↓79%!陌讯多模态融合算法在油罐车识别的边缘计算优化
人工智能·算法·计算机视觉·视觉检测·边缘计算
爱学习的小邓同学23 分钟前
C++ --- stack和queue的使用以及简单实现
c++
菜鸟5555527 分钟前
图论:SPFA算法
算法·图论
yunnanwang27 分钟前
鹏哥C语言_85_结构体下(结构体传参)
c语言·开发语言
霜羽689244 分钟前
【C++篇】模版进阶
开发语言·c++
XRZaaa1 小时前
C 多线程实现大文件固定大小分卷与 SHA256 哈希校验
算法·哈希算法
给老吕螺丝1 小时前
C 语言作用域与存储期深度解析:空间与时间的双重维度
c语言·开发语言·经验分享·笔记
超闻逸事1 小时前
题解:CF2129C Interactive RBS
c++·算法·codeforces
CHEN5_021 小时前
【Java面试题】缓存穿透
java·开发语言·数据库·redis·缓存
UQWRJ2 小时前
R语言基础图像及部分调用函数
开发语言·r语言