2017-03-06から1日間の記事一覧

Codeforces #403 (Div. 2) F: Innokenty and a Football League

解法 行列の累乗みたいなことをするには、 O(ビット数*n^3) で間に合わない。 実はbitsetを使えば十分速度が出せる。 メモリや実行速度が十分でないbool変数を使った解法は、bitsetを使うだけで間に合う場合がある。 最大の移動回数を求めるには、 0111<1000…

Codeforces #403(Div. 2) E: Underground Lab

解法 k人のクローンがいてそれぞれceil(2n/k)個の頂点を訪れることができるので、訪れることができる頂点の数の合計Sは S = ceil(2n/k)*k >= 2n 与えられたグラフは連結グラフなので全域木が存在する。与えられたグラフのある全域木Tについて考える。 TでDFS…

Codeforces #403 (Div. 2) C: Andryusha and Colored Balloons

解法 木の問題は、根付き木にすると見通しが立てやすくなることが多い。 根から再帰的に色を塗っていく。 ある頂点vの色をcur_col, 親の色をpar_colとする。また、部分木vのうち色が決まっているのはvだけとする。子の色を決めたい。問題文中の色を塗る条件…

Codeforces #403 (Div. 2) D: Innokenty and a Football League

解法 各チームについてshort nameの付け方は2通りある。 また、それぞれのチームのshort nameの関係は、いくつかの包含関係で表せる。 2値変数Aが真であることをa、偽であることを¬aのように表すと (x[1]=>x[2])∧(x[2]=>x[3])∧(x[3]=>x[1])∧(¬x[3]=>x[2])∧(¬…