题解:P12048 [USTCPC 2025] 多边形转动
这题除了推公式比较浪费脑细胞以外,就啥都不是很简单了。
这其实是一个数学问题,不知道学过奥数的同志们用了几秒钟看出来。
手搓公式可得: 转动次数=
n/__gcd(a/__gcd(a,b),n)*((b/__gcd(a,b))+a/__gcd(a,b)-1);
应该所有人都知道 c++ 有个好用的东西叫 __gcd() 吧……
下附代码:
#include<bits/stdc++.h>
using namespace std;
long long a,m,b,n;//开long long 是个好习惯
int main(){
cin>>a>>m>>b>>n;
cout<<n/__gcd(a/__gcd(a,b),n)*((b/__gcd(a,b))+a/__gcd(a,b)-1);
return 0;
}
这是本鱼的第一篇题解,麻烦支持一下!
完结撒花❀,谢谢大家