首页 > 一道GCD问题
头像 精神病科黄主任
发表于 2021-01-09 22:01:44
A 那么对于最小得k就是(g-a1%g)%g 注意要排序 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e5+50; ll a[N]; int main(){ int 展开全文
头像 あおいSakura
发表于 2021-01-17 12:39:38
一道GCD问题 题目链接:nowcoder 213804 到主站看:https://blog.csdn.net/weixin_43346722/article/details/112734928 题目大意 有一堆数,你要把他们都加一个尽可能小的数 k,让它们的 gcd 尽可能大。要你输出这个 k 和 展开全文
头像 issue是云哥的小迷×呀
发表于 2021-01-10 20:00:08
传送门 先说结论的做法 差分数组的和原数组相同 因为设原数组的啊为 那么每个数都是的倍数,每个数减去一个的倍数仍然不会改变整体的 那么数组的每个数加上,差分数组只有第一个数会加上去 也就是差分数组的的就是最大的,这样就非常简单 但是我太傻了,开始没想到这个结论^_^ 加上一个使得所有数字的最大,设 展开全文
头像 allkill
发表于 2020-12-26 11:08:25
自己一直用gcd函数,原理都快不记得了,现在写这篇博客来复习一下。比如找200和90的GCD最暴力的办法是一个for循环从2到89,找到最大的i使得200%i==0且90%i==0.上面的办法在时间效率很慢,复杂度为O(n)。下面讲一下辗转相除法的原理。还是200和90为例。先贴个代码。 int G 展开全文

等你来战

查看全部