2014-02-22
SRM 597
greedy |
Div1 Easy (250) LittleElephantAndString
問題
- 同じ長さの文字列AとBがある
 - Aの任意の文字を先頭に移動できる
 - AとBを等しくするための手数を求める(不可能なら-1)
 
方針
- ソートして一致しない場合は不可能
 - 例としてA=edcba,B=abcdeで考える
 - 先頭への移動しかできないので、末尾の文字eより後ろの文字は全て移動する必要がある
 - dについて考えると、e以外の文字は全て移動する必要がある
 - と考えていくと、末尾から、移動不要なものをe->d->cと一つずつ見つけ、それ以外のものは全て移動すればよい
 - Passed System Test
 - https://github.com/firewood/topcoder/blob/master/srm_5xx/srm_597/LittleElephantAndString.cpp
 
Div2 Easy (250) LittleElephantAndDouble
問題
- 数値の配列が与えられる
 - どれかの要素を2倍にできる
 - 全ての要素を等しくできるかどうかを答える
 
方針
- 任意の2要素が2の累乗倍になっているかどうかを調べる
 - 先頭の要素と、それ以外の全ての要素について確認できればよい
 - 小さいほうを2倍して一致するかどうか見る
 - https://github.com/firewood/topcoder/blob/master/srm_5xx/srm_597/LittleElephantAndDouble.cpp
 
結果
o-- +1 198.95 + 50 = 248.95pt 69th/740 rating 1236 -> 1400 (+164)
初の二桁順位。
コメントを書く
	トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20140222