mjtai
mjtai.bsky.social
mjtai
@mjtai.bsky.social
競技プログラミング (AtCoder, Codeforces: mjtai) / 百合 / MyGO!!!!!
G NTT畳み込み。1つの多項式は `x^p` の係数に `(A内のpの個数)*(p!)`。もう1つの多項式は `x^p` の係数に `(B内の(500010-p-1)/((500010-p-1)!))`。この2つの多項式を畳み込む。
November 15, 2025 at 1:57 PM
Reposted by mjtai
#ぼ喜多 喜多ちゃんが意外と鈍いと嬉しいです
November 9, 2025 at 1:22 PM
これ、 `cs[(x+2)%4] = 0;` のところ、 `cs[x^2] = 0;` でええやん
November 8, 2025 at 2:58 PM
そうすると、累積和と二分探索を使うことで、各クエリについて求めたい `(l, r)` がどのグループにあるかを求められる。
そのグループ内で何個目のものなのかは、累積和とクエリの `k` から分かる。
何個目かが分かったら、あとは頑張れば `(l, r)` を特定できる。
(PBDS の tree を2個作って、`l` の降順にうまい具合に求めた)
November 8, 2025 at 2:14 PM
G
重実装。
Bの並び順としては、
「`l=1`で辞書順小さくなるもの」
->「`l=2`で辞書順小さくなるもの」
-> ...
->「`l=n` で辞書順小さくなるもの」
->「辞書順変わらないもの」
->「`l=n` で辞書順大きくなるもの」
->「`l=n-1` で辞書順大きくなるもの」
-> ...
->「`l=1` で辞書順大きくなるもの」
となってる。
まずはこれら `2*n+1` 個の各グループについて、その中に含まれる `(l, r)` の組の個数を求める。
November 8, 2025 at 2:14 PM