Bまで二完。
No.2119 一般化百五減算
順番に中国剰余定理を使っていけば良いのは分かったが、TLEが取れなかった。
TLEの原因は、割る数が大きくなり過ぎることを忘れていたため。割られる数が大きくなったときをケアするだけなく、割る数の方が大きくなったときについてもきちんと調べなくてはいけなかった。
No.2120 場合の数の下8桁
教育的な問題。やり方を全然覚えていなかった……。
2ベキ、5ベキ、それ以外で分ける。
2ベキや5ベキを除いた部分は、$2^8$や$5^8$をmodとしたとき可逆になっているため、オイラーのトーシェント関数を使えば「何乗すれば逆数になるか?」が分かる(なお、Pythonならpow(x,-1,mod)でOK)ので、計算可能。それぞれ計算し、中国剰余定理によって復元できる。
0 件のコメント:
コメントを投稿