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
もっとシンプルに解く必要がある。
- 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