2011-01-21から1日間の記事一覧

2941:Homogeneous Squares

PKU

keyword 行列 C 概要 サイズN*N (N 各行の階差数列が等しくなるかどうか判定すれば良い。なぜなら、a[i][k+1] - a[i][k] != a[j][k+1] - a[j][k]ならa[i][k] + a[j][k+1] != a[i][k+1] + a[j][k]だからこの部分を入れ換えればよいから。計算量O(N^2)でこれ以…

1466:Girls and Boys

keyword 2部グラフ 最大独立点集合 C++ 概要 頂点数V( 色々調べてみると、V-|最大マッチング|になるらしい。計算量O(V*E)。

1350:Cabric Number Problem

PKU

keyword 整数 C++ 概要 10進数で考える。4桁の整数に対して、それを並び替えてできる最大の数と最小の数(leading 0もOK)の差を引くことを繰り返すと6174か0に落ちることが知られている。それをシミュレートする問題。 やるだけ、としか。あと問題文が色々不…

1422:Air Raid

PKU

keyword 最小パス被覆 C++ 概要 ノード数N( 模擬地区予選で類題が出た問題。DAGの最小パス被覆は(u,v)に対してu->v'となるような2部グラフの最大マッチングを頂点数から引けば良い。

2195:Going Home

keyword 最小重み2部マッチング C++ 概要 N( 見たまま最小重み2部マッチング。計算量O(N^2 log N)。ソース略。

3129:How I Wonder What You Are!

keyword 空間幾何 C 概要 空間状に星がN( 何の工夫もなく角度を求めるだけ。計算量O(N*M)。あとPKUでGCCを選んだときは-lmがついていることも確認できた。

3130:How I Mathematician Wonder What You Are!

keyword 平面幾何 C++ 概要 頂点数N( 凸多角形の切断を繰り返す。計算量O(N^2)。

3213:PM3

PKU

keyword 行列 C 概要 行列A,B,Cが与えられる。(N A*B = Cであるかどうか判定する問題。間違っている場合はどの要素が間違えているか出力する。 メモリの局所性に気をつけてO(N^3)で計算する。普通ならこのオーダーはアウトだけど計算は単純だしメモリも連続…

3628:Bookshelf 2

PKU

keyword BruteForce C 概要 長さN( Nが小さいので全探索する。パターンが2^N、部分和の計算がNなので全体の計算量はO(2^N * N)。半分全列挙を用いるとO(2^(N/2) * N)に落とせる(2^(N/2) * log(2^(N/2))。