CodeChef

Suffix Arrayを使ってみた

全く解き方が分からなかったMountain HolidaysのEditorialが出たので解いてみました. Mountain Holidays 整数の配列height(1 次の条件のいずれかを満たすとき(i1, j1)と(i2, j2)の2つの連続部分列は異なる. 1. j1 – i1 != j2 – i2 2. height[i1+k] – heigh…

CodeChef October Challenge 2013を頑張ってみた

October Challenge 2013に参加しました。 初めて7問(正確には6.143問)解けたので参加記書きます。以下は解いた人が多い順です。 Helping Lira N個の三角形が与えられる。最大の面積と最小の面積を求めよ。 ライブラリがあったのでやるだけ。ソースコード M…

ミラー・ラビン素数判定法を使ってみた

CodeChefのMay Challenge 2013に挑んだ時に解けなかったWitua and Mathを解いてみました。 Witua and Math 整数Nが与えられる(2 オイラーのtotient関数をφとするとき、φ(i)/iを最大とするi(2 totient関数のWikipediaを見ると、この問題は「N以下で最大の素…

切断点や橋を求めるTarjanのアルゴリズム

グラフ理論において、切断点(cut vertex, articulation point)とは無くす事でグラフの連結成分の数が増える頂点のことをいい、橋(bridge)とは無くす事でグラフの連結成分の数が増える辺のことをいいます。 グラフの頂点集合に対してDFSを行うと森(木の集ま…

March Challenge 2013, TCO 2013, Codeforces #172

いくつかコンテストに出たので記録しておきます。 March Challenge 2013 http://www.codechef.com/MARCH13CodeChefのLong Contest。 Tourist Translations やるだけ。 Scalaでやってみました。 やっぱり関数型言語のmap関数は便利です。 ちなみにInt型をChar…

BITを使ってみた

前に出たCodeChefのコンテストで解けなかった問題を解いてみました。Magic Board http://www.codechef.com/problems/MBOARDN*NのフィールドとQ個のクエリが与えられる。 クエリは RowSet i x: i行目をx(=0 or 1)にする。 ColSet i x: i列目をx(=0 or 1)にす…

Codeforces Round #166, CodeChefとか

EclipseのC++プラグインCDTがすごい使いやすいんですが、最近デバッグすると飛んだりします。しかも恐ろしいことに頻度が上がってきているような気がする・・・。 February 2013 Challenge http://www.codechef.com/FEB13CodeChefのロングランコンテストに出…

コンテストラッシュ2

ここ(http://wikiwiki.jp/kyopro/?FrontPage)を見て面白そうなOnline Judgeがあったのでいくつか登録してみました。あとFacebook Hacker Cupの結果を。 Facebook Hacker Cup 2013 Round 1 https://www.facebook.com/hackercup/problems.php?round=18989011…