题目连接:http://162.105.81.212/JudgeOnline/problem?id=3101
题意简述:求若干个行星的位置刚好组成直线的周期。
解题思路:这题想了很久,才发现想错方向了,开始一直往同余方向去想了,yy了好久勉强建了几个草稿方程,但这个方法很快就被否决了,实在想不出了。。。 在别人的提示下,有了如下思路:
把相同的周期合并,然后用把所有周期串起来,即求出经过多少时间,他们能相差180度(t[i]*t[i-1]/((t[i]-t[i-1])*2)),然后求最小公倍数,由于是对分数求最小公倍数,于是分别设两分数为a/b,c/d,则最小公倍数为:lcm(a,c)/gcd(b,d)。
简单证明:
lcm(a/b,c/d)=lcm(a*d,b*c)/(b*d)=lcm(a,c)*lcm(b,d)/(b*d)。
这题如果直接按朴素的方法算会溢出,于是要用高精度求lcm和gcd。
lrj黑书上写到:
gcd(a,b)=p1^min(a1,b1)*p2^min(a2,b2)……pn^min(an,bn),
lcm(a,b)=p1^max(a1,b1)*p2^max(a2,b2)……pn^max(an,bn)。
最近不在状态,高精度太麻烦了,留着以后再写。