FestivalAtCoder「3月中に毎日1問解いて黄色になろう!」キャンペーン10問目。問題概要N人の人はM種類のスポーツの内開催されていて一番好きなスポーツにしか出ない。スポーツがばらけるように開催するかしないか選んだ時、一番人が集まるスポーツの人数を求めよ。https://beta.atcoder.jp/contests/agc018/tasks/agc018_b解説2部グラフですね。全部容量1にして、全体をまとめるs,tは特に考えません。N人の状態について、「何番目まで得意なスポーツがやっているか見たか」という情報を持たせます。この優先順序でフローを流します。流した後、M個のスポーツについて最も集まっている=逆辺の本数が最も多いものの個数をretとします。retより小さい解を求めるにあたって、ret以上の本数が流れているスポーツを開催する理由はありません。フラグを折った後に、逆辺に沿って流して、次の順位を見ます。このようにすると、M個のスポーツが無くなる前にループが終わる=M個のスポーツ全てについてret未満の辺が入っているということになるので、前に戻ってそれより小さい解を探し、最後まで見終わってしまったらそこでプログラムを止めます。計算量は一番外側(retを更新)が最悪O(M)、その内側のチェックO(M)、イテレータ部分O(M)、戻す作業O(N)なのでO(M2(M+N))という感じでしょうか。...「3月中に毎日1問解いて黄色になろう!」キャンペーン8問目。no.337/338/339/340うん。Twitterで宣言されていた通り比較的簡単だった。予選(問題A,B)タイトル通り2完でした。日)ネットの海に生息するらしいバーチャルグソクムシ。競プロとCTFをメインに、たまにEsolangを混ぜます。(7)月別アーカイブリンクGitHubはてなブログをはじめよう!Hyogaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。