Dove 的疑惑
Posted monyhzc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dove 的疑惑相关的知识,希望对你有一定的参考价值。
显然这是一道数学题
我们可以 大力猜结论 用心推式子
显然如果不管限制,答案是 π Mi
我们发现肯定要减一个东西
显然两个数的答案可以合并,考虑只有两个数
1.若 Mi Mj 互质:
显然 0%Mj , 1%Mj ,2%Mj ... , (Mi-1)%Mj = 0 , 1 , 2 ... , Mj-1
答案为 Mi * Mj
2.若 Mi Mj 不互质
不妨令 Mi=ka Mj=kb (k>1)
我们把 0-Mi-1 0-Mj-1 分别剁成 a ,b 块 ,每块大小严格为 k
什么时候不可以捏?因为 t%k=(t%Mi)%k y%k=(y%Mj)%k
所以当 t%k != y%k 时就寿终正寝了
所以每个 t ,y 在每个块中的位置必须一样
答案为 a * b * k
综上,这TM不就是 LCM(Mi,Mj)吗?
Code:
#include<bits/stdc++.h>//math.cpp #define qwq printf("qwq\\n"); #define For(i,a,b) for(register ll i=a;i<=b;i++) #define ll long long using namespace std; const ll maxn=1e5+10; ll n,ans=1,cnt,l; ll gcd(ll x,ll y)return y?gcd(y,x%y):x; ll lcm(ll x,ll y)return x*y/gcd(x,y); signed main() scanf("%lld",&n); For(i,1,n) scanf("%lld",&l); ans*=l; if(i==1) cnt=l; else cnt=lcm(cnt,l); printf("%lld\\n",ans-cnt);
以上是关于Dove 的疑惑的主要内容,如果未能解决你的问题,请参考以下文章