2013-05-06
Google Code Jam 2013 Round 1A
Problem A. Bullseye
問題
- 白地に黒丸を描く
 - 書き始めの半径rと、ペンキの量tが与えられる
 - 中途半端な丸は描かない
 - 何個丸が描けるか求める
 
方針 (small)
方針 (large)
- 半径rに必要なペンキの量は(r+1)^2-r^2=2*x+1
 - 半径は2ずつ増えるので、必要なペンキ量は1,5,9,...または3,7,11,...
 - 半径の半分をxとすると4x+1または4x+3
 - 積分するとxから必要なペンキの量が求まる (2*x^2+xまたは2*x^2+3*x)
 - 開始の半径rが3以上のときは、tにそれまでに必要なペンキの量を足す
 - 解の公式でxを求める
 - (math.sqrtを使ったため通らず)
 - 整数のsqrtに修正
 - https://github.com/firewood/topcoder/blob/master/gcj_2013/R1A_A_l.py
 
Problem B. Manage your Energy
問題
- 初期エネルギーEと、毎日の回復量R、N日分の幸福量Aが与えられる
 - 一日のエネルギーはEを超えない
 - 消費量×Aの総和の最大を求める
 
方針 (small)
- Eの最大値が小さいので、その日の消費量を1からEまで全部試す
 - next[次の日の残りエネルギー] = 幸福量
 - https://github.com/firewood/topcoder/blob/master/gcj_2013/R1A_B_s.cpp
 
方針 (large)
- (終了後)
 - どうやら最大のから消費していけばよいらしい
 - 次に消費する日はpriority queueで決める
 - 日ごとに、少なくともその値以上を保つ必要がある最小値minと、その日に取りうるエネルギーの最大値maxを持っておく
 - 初期値はmin=0、max=E
 - 消費するときは、その日に消費できる最大値max-minを消費する
 - その結果、前日にはmax-R以上、前々日はmax-2*R以上を保つ必要があるので、更新する
 - また、消費できる最大値まで消費するので、次の日以降の最大値は、min+R、min+R*2、...となるので、更新する
 - https://github.com/firewood/topcoder/blob/master/gcj_2013/R1A_B_l.cpp
 
結果
A small + B small = 23pt 2654th
もっとシンプルに解く必要がある。
コメントを書く
		トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20130506
		リンク元
		- 58 https://topcoder-g-hatena-ne-jp.jag-icpc.org/
 - 16 https://www.google.co.jp/
 - 4 http://www.google.co.jp/url?sa=t&rct=j&q=topcoder ロボットが左右に動く 一番長い距離&source=web&cd=1&ved=0CCoQFjAA&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120322/1332432944&ei=yT6SUfP-HrGTiQfZk4GABA&usg=AFQjCNHmrP3SgDG3G7L8QSjglwB1Kt0Vdw&cad=rja
 - 2 http://www.google.com/url?sa=t&rct=j&q=srm+508&source=web&cd=18&ved=0CJMBEBYwEQ&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20110612/1307897928&ei=UsuQUaeaDc3PlAXV1oDgCg&usg=AFQjCNHWv2HAtQehW-72yKjXMvcO2rUZnA
 - 1 http://www.google.co.jp/url?sa=t&rct=j&q=偶数を求めるプログラム&source=web&cd=617&ved=0CIEBEBYwEDjYBA&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/?of=40&ei=qsCHUcD4G4qlkAWZ0oCgDg&usg=AFQjCNHoLofJ4bEUBuxZgkm3QJJSwsiOAg
 - 1 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDoQFjAB&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/&ei=ddWHUanoEMrllAXrx4CgDw&usg=AFQjCNF7OCqzkXGK7X8vh6Y-RjeI_uDApQ&sig2=06URYDlWr0PmJwev5iaAbQ&bvm=bv.45960087,d.dGI
 - 1 http://www.google.co.jp/url?sa=t&rct=j&q=srm+513&source=web&cd=2&ved=0CDUQFjAB&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20111013/1318523868&ei=WeaHUfLUEtCUiAeO5YHwCQ&usg=AFQjCNF2NMLyisjCVFlPOdu7zWMeDdLPbw
 - 1 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&ved=0CD0QFjAC&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20130503/1367595310&ei=0VmIUaj4AcjMyQHqzIHoAw&usg=AFQjCNE06P7yYWNhazNn3fkC-4uoiJ-sSQ&sig2=pjQNxfVlUvNp401BhtD1iQ&bvm=bv.45960087,d.aWc
 - 1 http://www.google.com/url?q=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/&sa=D&sntz=1&usg=AFQjCNEQdv_uh3CJuygJSeBa63PG0HOcjQ
 - 1 http://www.google.co.jp/url?sa=t&rct=j&q=srm+513&source=web&cd=2&ved=0CDUQFjAB&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20111013/1318523868&ei=I_eIUavDH4WPiAfK2YCQAQ&usg=AFQjCNF2NMLyisjCVFlPOdu7zWMeDdLPbw