Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

AtCoder Regular Contest 114

2完1WA1TLE。

Aでもたついたのがもったいなかった。

各問題

A - Not coprime

各XとYが互いに素でないので、Yの素因数には各Xの素因数が含まれている必要があります。

そこで、各Xを素因数分解して含まれうる素因数を全部抽出します。これは2から50までの数ではたかだか15個しか存在しないため、全パターンをbit全探索などで確認することができます。全探索をして条件を満たす数のうちで最小のものを取ればそれが答えです。

間違った解法(小さい素因数を優先して取っていた)を投げてWA、Yを全探索しようとして1TLE出してしまいました。

B - Special Subsets

f(a)のaとf_iが連結したものは同じ部分集合に置かないと条件を満たせません。(厳密な証明は公式解説を参照してください。)

dsuを使って連結成分の個数を求めて、2^(連結成分の個数) - 1とすればそれが答えです。

正直に告白すると、ふんわりとなんとなくそうなんじゃないかなーと思って投げたら通っちゃいました。

C - Sequence Scores

1時間以上椅子を温めていました・・・。

まとめ

いやほんと、B問題は問題文をぐっと睨むとグラフが見えたんですよね・・・。今まで解いてきた問題がここで生きたということにしておきましょう。

f:id:mdstoy:20210314231434p:plain