バイトの競プロメモ

主に競技プログラミング

包除原理

AtCoder Beginner Contest 304F - Shift Table

F - Shift Table メモ Nの約数M(N < M)について 青木君のシフトを周期Mで決めた時に、すべての日程でどちらかが居ないといけない。 そのような青木君のシフトを数え上げろという問題 複数の操作列(M, 長さMのシフト)について、同じシフトが重複してしまう事…

AtCoder Regular Contest 160 D - Mahjong

D - Mahjong メモ 以下の二つの操作を使って作れる、長さNで総和がMの数列Aは何通りあるか ・長さKの区間に1を足す ・あるAiの値をK足す この問題の難しさは、異なる操作によって同じ数列が作られる事があるという点にある これは、数えあげpdfのgreedyから…

AOJ 2446 Enumeration

概要 包除原理と期待値の線形性(誤用かも)で解きました 既存の解説はメビウス変換が多かったので自分の解法を書いておきます。 問題 N個の整数S1...Snが与えられ、それらの整数をランダムにいくつか選ぶ。ここで(1<=i<=n)なるiで各Siが選ばれる確率はPi/10…