UVa1263
グラフにする。
強連結成分分解して、頂点の入次数を見る。
強連結成分分解のコードは省略。だいたいスパソと同じ。
3/25/2012
3/24/2012
UVa12338
UVa12238
接尾辞配列ライクなことをやる。
与えられた文字列をソートし、となりあう文字列の一致する最長のプレフィックス (LCP) を求める。
それに RMQ を使ってクエリーを処理する。
A[i] と A[i+1] のプレフィックスが n 文字目まで一致していて、
A[i+1] と A[i+2] のプレフィックスが m 文字目まで一致していれば、
A[i] と A[i+2] は min(n, m) 文字目までのプレフィックスが一致していることになる。
A[j]とA[k]のプレフィックスはRMQ(j, k)文字目まで一致することになる。
このアプローチで実行時間が3秒強。タイムリミットが5秒。
ラディックスソートとか使えばもっと早くなるかも?
3/23/2012
SRM537 Div2 Hard
925
とりあえず、グラフにする。
あるトーストを学ぶために食べるトーストの枚数は最小で1、最大でルートまでの距離
全ての頂点に関して試す。
点数も1000より低いし、本番でも40人以上が通してるけど、そんなに簡単とは思えなかった。
とりあえず、グラフにする。
あるトーストを学ぶために食べるトーストの枚数は最小で1、最大でルートまでの距離
全ての頂点に関して試す。
点数も1000より低いし、本番でも40人以上が通してるけど、そんなに簡単とは思えなかった。
SRM502 Div2 Hard
1000
DPする。
DP[何匹目まで見た mod 2][数字の合計 mod N][何匹が逃げた];
この実装だと、実行時間がそうとうギリギリ。
テーブルの半分を毎回初期化するのはもちろん、剰余算を少し余計にやっただけでアウト。
DPする。
DP[何匹目まで見た mod 2][数字の合計 mod N][何匹が逃げた];
この実装だと、実行時間がそうとうギリギリ。
テーブルの半分を毎回初期化するのはもちろん、剰余算を少し余計にやっただけでアウト。
3/22/2012
登録:
投稿
(
Atom
)