B. Make Almost Equal With Mod

原题链接

题解,看完你对最大公约数,求余一定有更深的认识

事实1.当序列中有奇数又有偶数时,2就是那个k
事实2.当 a[i] mod b=c,i[1,n]

  • a[i] mod 2b=c ,if(a[i]//b)==偶数

  • a[i] mod 2b=c+b ,if(a[i]//b)==奇数
    dalao

事实3.如上,对非有序的序列一样成立

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll a[105]={0};
int main()
{
    ll t;
    cin>>t;
    while(t--)
    {
        ll n;
        cin>>n;
        for(ll i=1;i<=n;i++)cin>>a[i];
        ll x=abs(a[2]-a[1]);
        for(int i=3;i<=n;i++)x=__gcd(x,abs(a[i]-a[1]));
        cout<<2*x<<endl;
    }
    return 0;
}

posted @   纯粹的  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示