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;
}
相关推荐
yeziyfx2 小时前
kotlin中 ?:的用法
android·开发语言·kotlin
charlie1145141912 小时前
嵌入式的现代C++教程——constexpr与设计技巧
开发语言·c++·笔记·单片机·学习·算法·嵌入式
古城小栈3 小时前
Rust 网络请求库:reqwest
开发语言·网络·rust
hqwest3 小时前
码上通QT实战12--监控页面04-绘制6个灯珠及开关
开发语言·qt·qpainter·qt事件·stackedwidget
i橡皮擦3 小时前
TheIsle恐龙岛读取游戏基址做插件(C#语言)
开发语言·游戏·c#·恐龙岛·theisle
bing.shao4 小时前
golang 做AI任务执行
开发语言·人工智能·golang
清木铎4 小时前
leetcode_day4_筑基期_《绝境求生》
算法
清木铎4 小时前
leetcode_day10_筑基期_《绝境求生》
算法
j_jiajia4 小时前
(一)人工智能算法之监督学习——KNN
人工智能·学习·算法
源代码•宸4 小时前
Golang语法进阶(协程池、反射)
开发语言·经验分享·后端·算法·golang·反射·协程池