天下一プログラマーコンテスト2014予選A

2014-08-10 | [Competitive programming]

A

「C++ 以外も使えるようにしましょう」という教育的目的が感じられる問題.Ruby で解いた

C

「(s1, …, sn) がすべてマッチする文字列が存在 ⇔ 任意の i, j に対して,si, sj がともにマッチする文字列が存在」 を用いる.

B

面倒な実装やるだけ (puke)

D

線分を角度の範囲にした後,区間たちの(円上の)最大安定集合を求める. 最大安定集合を求めればいいことに気づかずだいぶ悩んだ…

E

x を動かしたら y も動く,という感じのグラフを作り,強連結成分分解し,DAG に落とす. その後,「この連結成分を動かしたら列 i はここから下が動く」という値を求める.

結果

C, B で WA を出した (>_<) 「天下一全完」8 人出たが,なんとかペナルティで勝って 1 位