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;
}
相关推荐
Sakura_j_h_6 分钟前
EasyEDA PCB 快速设计Skills
c++·python·github
ZhengEnCi43 分钟前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南
算法·架构
龙亘川1 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
程序喵大人1 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
秋天的怀念_David1 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Raas1002 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
Pniubi2 小时前
力扣283移动零(双指针法)
算法·leetcode·职场和发展
hhb_6182 小时前
大模型落地三重优化实战
人工智能·算法·机器学习
云和数据.ChenGuang2 小时前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南
网络·人工智能·python·算法·langchain
专注仿真2 小时前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法