2024年4月23日火曜日

Codeforces Round 940 (Div. 2) and CodeCraft-23

 Dまで四完。ARCの後だったこともあり、前半は休み休みやっていた。

コンテスト後のツイート

E. Carousel of Combinations

 解説AC。

 Combi(n, k)*(k-1)! mod k の和を求める問題。実験コードを書いてこれを計算してみると、k=4と素数のとき以外は0になること、かつ、規則的に値が変化することが分かる。kを固定したとき、最初に値が正になるのはn=kのときで、k-1。そこからkごとに-1し、0になったらまたk-1に戻る。(これはkが素数のとき。k=4は2と0を交互に取る)

 これが分かった後、埋め込みか? などと考えてしまい解説を見てしまったが、累積和を二回やるのが正しかった。規則的に値が変化するのだから、累積和を考えるのは自然。

 大体解けたけどTLEが微妙ってとき、変な手法を考えてしまうのは悪い癖。まともに計算量を減らす手法を考えるようにしないといけない。






0 件のコメント:

コメントを投稿