又来到令人痛苦的latex环节了
P1082 同余方程
板子题,没什么好说的
这道题既是求同余方程,也是求逆元
板子如下:
long long gcd(long long a,long long b,long long &x,long long &y)
{
if(b==0)
{
x=1;
y=0;
return a;
}else
{
long long k=gcd(b,a%b,x,y);
swap(x,y);
y-=(a/b)*x;
return k;
}
}
P1516 青蛙的约会
设两只青蛙跳跃 a a a次后相遇
x + m a ≡ = y + n a ( m o d L ) x+ma\equiv=y+na(mod\;L) x+ma≡=y+na(modL)
m a − n a ≡ y − x ( m o d L ) ma-na\equiv y-x(mod\;L) ma−na≡y−x(modL)
( m − n ) a ≡ y − x ( m o d L ) (m-n)a\equiv y-x(mod\;L) (m−n)a≡y−x(modL)
m , n , x , y m,n,x,y m,n,x,y都是已知常量,接下来我们就可以愉快套板子了
值得注意的是, m − n m-n m−n可能是一个负数,这时便需交换两只青蛙的值
P1292 倒酒
说实话,我觉得这题至少得评绿,楼上一板子题还是绿呢…
总而言之,这道题的思想还是很巧妙的
由 P a P_{a} Pa最小这一限制可知在a不满的时候就把a里面的酒倒出来是一种 傻逼透顶 没有价值(无法使答案最小,却会使 P a P_{a} Pa白白增大)的行为
又因为 P b P_{b} Pb也要尽量最小,所以结束是b酒杯中一定是空的。
综上,我们可以写出下面的式子
P b × b − P a × a = a n s P_{b}\times b-P_{a}\times a=ans Pb×b−Pa×a=ans
若要让 a n s ans ans最小,则 a n s = g c d ( P a , P b ) ans=gcd(P_{a},P_{b}) ans=gcd(Pa,P