当前位置: 首页 > backend >正文

P4549 【模板】裴蜀定理

题目描述

给定一个包含 n 个元素的整数序列 A,记作 A1​,A2​,A3​,...,An​。

求另一个包含 n 个元素的待定整数序列 X,记 S=i=1∑n​Ai​×Xi​,使得 S>0 且 S 尽可能的小。

输入格式

第一行一个整数 n,表示序列元素个数。

第二行 n 个整数,表示序列 A。

输出格式

一行一个整数,表示 S>0 的前提下 S 的最小值。

输入输出样例

输入 

2
4059 -1782

输出 

99

说明/提示

对于 100% 的数据,1≤n≤20,∣Ai​∣≤105,且 A 序列不全为 0。

代码

无注释版

#include<bits/stdc++.h>
#define int long long
using namespace std;
int ans;
signed main(){int n;cin>>n;for(int i=1;i<=n;i++){int x;cin>>x;if(x<0) x=-x;ans=__gcd(ans,x); }cout<<ans<<"\n";
} 

有注释版

#include<bits/stdc++.h>  // 引入标准库,包含常用的C++库
#define int long long  // 定义 long long 为 int 类型,保证处理较大的数值时不会溢出
using namespace std;  // 使用标准命名空间int ans;  // 用来存储最终的结果,即最小的 Ssigned main(){int n;cin >> n;  // 输入整数 n,表示序列的元素个数// 循环遍历序列 A 中的每个元素for(int i = 1; i <= n; i++){int x;cin >> x;  // 输入第 i 个元素 x// 如果 x 是负数,则取其绝对值if(x < 0) x = -x;// 使用最大公约数(GCD)更新 ans,最小化 S 需要找到序列元素的公约数// `__gcd` 是 C++ 标准库提供的计算两个数最大公约数的函数ans = __gcd(ans, x); }cout << ans << "\n";  // 输出最终结果 ans,即 S 的最小值
}
http://www.xdnf.cn/news/3931.html

相关文章:

  • Android第三次面试总结之Java篇补充
  • 不定长滑动窗口(求最短/最小)
  • [运维]Linux安装、配置并使用atop监控工具
  • Spring MVC常见注解详解
  • 力扣1128题解
  • sql错题(1)
  • ssh连接云服务器记录
  • 一种实波束扫描雷达角超分辨方法——论文阅读
  • Delphi创建IIS虚拟目录的方法
  • StampLock的源码详细剖析
  • SSE技术的基本理解以及在项目中的使用
  • 商场防损部绩效考核制度与管理方法
  • 【操作系统】读者-写者问题
  • Git_.gitignore文件简介及使用
  • C与指针——输入输出
  • 什么是constexpr?
  • 解决:前后端跨域请求
  • 【Redis】Java操作Redis之SpringDataRedis
  • 洛谷 P1495:【模板】中国剩余定理(CRT)/ 曹冲养猪
  • 数字化转型-4A架构之业务架构
  • 深度优先搜索(DFS)与广度优先搜索(BFS):图与树遍历的两大利器
  • 74HC123的电路应用场景
  • 一键获取当前项目的所有文件结构并保存到文本文件
  • 【数据结构与算法】常见排序算法详解(C++实现)
  • Java大师成长计划之第12天:性能调优与GC原理
  • word页眉去掉线
  • LLama-v2 权重下载
  • Linux 进程基础(二):操作系统
  • TensorFlow深度学习实战——基于循环神经网络的词性标注模型
  • 接口自动化测试项目框架详解