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

晋江网站建设赣州网站设计有哪些

晋江网站建设,赣州网站设计有哪些,行业网站建设哪家专业,网站海外推广方法C. Dora and C 题目: 思路: 贝祖定理,又忘了,很好的思维题 这一题可以当一个结论来记忆,结论如下 对于一个数 ai 如果我们可以任意次 a -a b -b,那么我们最后一定能得到 ai k * gcd(a,b) 证…

C. Dora and C++

题目:

思路:

贝祖定理,又忘了,很好的思维题

这一题可以当一个结论来记忆,结论如下

对于一个数 ai 如果我们可以任意次 +a -a +b -b,那么我们最后一定能得到 ai + k * gcd(a,b)

证明如下:

我们假设当前数为 c 目标值为 d,那么在 x 次 a 操作 和 y 次 b 操作 后,我们得到的结果就是

c + xa + by = d,注意其中 x 和 y 是整数

那么就是 xa + by = d - c,根据贝祖定理,对于这样的方程,我们有解的条件是 gcd(a,b) | d - c

那么观察上面的方程 d - c 不就是每次的增量吗,因此我们一定可以构造出一个 增量 m,使得 m = k * gcd(a,b),所以我们一定能得到 ai + m 

回到这题,那么由于我们要求 max - min,这里每次只能增加,那我们如何计算呢?

根据上面的结论,我们可以通过无限次的操作使得最后每个 ai 的差距都小于等于 gcd(a,b),所以这题就变成在 每个数 模 完 gcd(a,b) 后的意义下,求 max - min

所以我们可以这样操作,在模完后排序数组,然后我们尝试将每个数都加上 g 后看看新的差值是多少,因为模完后每个数都小于 gcd(a,b),所以我们如果让第一个数加上 g ,那么这个数就会变成最大的数,而最小的数就会变成原来最小的数后面的那个数

比如 1 3 5 6 10 g=11,当1加上11后,12就是最大值,而3变成了最小值

因此我们这样模拟一下即可,注意一开始要初始化答案为最开始的最大值减最小值

代码:

#include <iostream>
#include <algorithm>
#include<cstring>
#include<cctype>
#include<string>
#include <set>
#include <vector>
#include <cmath>
#include <queue>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <memory>
using namespace std;
#define int long long
#define yes cout << "YES\n"
#define no cout << "NO\n"int gcd(int a, int b)
{return !b ? a : gcd(b, a % b);
}void solve()
{int n, a, b;cin >> n >> a >> b;vector<int> A(n+1);int g = gcd(a, b);for (int i = 1; i <= n; i++){cin >> A[i];A[i] %= g;}sort(A.begin()+1, A.end());int ans = A[n] - A[1];for (int i = 1;i < n;i++){ans = min(ans, A[i] + g - A[i + 1]);}cout << ans << endl;
}signed main()
{cin.tie(0)->sync_with_stdio(false);int t = 1;cin >> t;while (t--){solve();}return 0;
}

http://www.dtcms.com/a/526785.html

相关文章:

  • 镇江建设银行网站如何自己用wordpress建网站
  • 安徽省建设干部学校网站关停wordpress有无缩略图
  • 网站通栏代码怎么识别网站是用什么语言做的
  • 网站建设兼容性网站怎么做落款
  • 二手商品网站制作广州网站优化实战
  • 太仓公司网站建设电话seo优化关键词排名
  • 保险网站查询四川省化工建设有限公司网站
  • 科普网站建设方案wordpress手机认证登录
  • 贵阳网站建设多少钱免费制作永久企业网站
  • 网站手机站怎么做的虚拟机wordpress插件
  • 怎样营销网站建设蜀icp备 网站建设中企动力成都
  • 建设网站6980块钱贵吗深圳专业做网站设计公司
  • 做最最优秀的视频网站有哪些网站开发成app
  • 做网站腾讯云服务器吗网站如何加入广告联盟
  • 大型网站seo策略网站系统分类
  • 网站建设需要怎么维护做足彩推荐赚钱的网站
  • 最新网站建设进程陆金所 网站开发二部
  • 给网站做app哈尔滨市建设工程信息
  • 手机网站制作视频教程媒体查询做响应式网站
  • 工业设计网站有那些wordpress站内信插件
  • wordpress如何做网站怎样建网站赚钱
  • 为女友做网站wordpress源代码如何在本地编辑
  • 重庆市建筑工程造价信息网官网郑州seo优化外包热狗网
  • 网站底部图标一个主体如何添加网站
  • 饿了么企业网站公司注册地址多少钱
  • 做外贸网站空间多少g在线建站软件
  • 重庆专业网站开发服务WordPress百度智能小程序
  • 外包干了9天,技术退步明显。。。。。
  • 中英文网站建设公司网站登录按钮点击没反应什么原因
  • 老生常谈的字符串拼接