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;
}
相关推荐
andlbds7 分钟前
Ubuntu20.04安装Pangolin遇到的几种报错的解决方案
开发语言·c++
HyperAI超神经37 分钟前
【vLLM 学习】Aqlm 示例
java·开发语言·数据库·人工智能·学习·教程·vllm
永不停转37 分钟前
QT 实现 C++ 数据类与 json 的转换
c++·qt
纪元A梦40 分钟前
华为OD机试真题——数据分类(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
java·javascript·c++·python·华为od·go·华为od机试题
爱的叹息41 分钟前
关于 梯度下降算法、线性回归模型、梯度下降训练线性回归、线性回归的其他训练算法 以及 回归模型分类 的详细说明
人工智能·算法·回归·线性回归
小柒的博客1 小时前
从C语言变量看内存
c语言·开发语言
炯哈哈1 小时前
【上位机——MFC】菜单类与工具栏
开发语言·c++·mfc·上位机
2401_846535951 小时前
spark和hadoop的区别与联系
开发语言·spark
冠位观测者1 小时前
【Leetcode 每日一题】781. 森林中的兔子
数据结构·算法·leetcode
爱编程的王小美1 小时前
Scala 入门指南
开发语言·后端·scala