競技プログラミングにハマるプログラマのスレ 258 (308レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
274
(1): 11/15(土)23:08 AAS
何度も試行錯誤してたらやっとF解いてくれたわ
たぶん正しい解法だよな

平均 M = (?Ai)/N を計算し,割り切れなければ -1.
di = Ai−M(総和 0)とおき,di≠0 の添字だけを扱う.
「操作 1 回=重み付き有向辺 1 本」と見ると,各連結成分は少なくとも(頂点数−1)本の辺を要し,スパン木で等号達成.
よって di≠0 の集合を「総和 0 の部分集合」に分割したときの成分数を最大化すれば,最小操作回数は m−(成分数)となる.
これは部分集合 DP:dp[mask]=max_{sum[s]=0, s⊆mask}(1+dp[mask\s]) を最下位ビット固定で計算.
省1
277: 11/15(土)23:09 AAS
>>274
ちょっと違うくね?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.022s