2010-03-02

[][]SRM463 00:08 はてなブックマーク - SRM463 - TopCoderの学習のお時間

2010-03-02 21:00-(JST

http://www.topcoder.com/stat?c=coder_room_stats&rd=14148&rm=303734&cr=22744421

久々にうまくいったSRM

Random Coder Statsの言っている通り自分は数学ゲー向きなのだろうか。自身ではあまりそんな気はしていないが

Level タイトル 試合中 あとで ひとこと
DIV1 250 RabbitNumbering AC 2min - greedyに掛け算するだけ
DIV1 500 Nisoku AC 24min+再提出1回 - とても数学
DIV1 1000 RabbitPuzzle Opened - 時間たくさんあったが解いてる人が少なかったので諦め
  • Coding
    • 250
      • ソートして順番にやるだけー
      • キー捌きがいまいちで少しもたついてしまったが部屋内最速で驚いた
    • 500
      • 2以上のもの同士は足すよりも掛けた方が大きくなる
      • 2未満のものは…
      • 最小1.5だから2つ足すと3以上になって、
      • a>=3、b>=1.5の下では a*b >= a+b なので3つ以上を足し合わせることはない
      • つまり2未満のものからペアを作って足して、できたものを掛ければよい?
      • 積を大きくするペアの作り方は、できるだけ近い数がたくさんできるように両側から足していくのがよい
        • 個数が奇数の場合は一番大きいのを余らせる
      • これでサンプル通ったので提出
      • 500にしてはあっけなかったのでコーナーケースを考える
      • 最小サイズは2か
      • ん…? 2以上の数と2未満の数の場合どうなる?
      • 1.8と2.1… うわーん掛けるより足した方が大きいではないか
      • 結局いくつまでなら足した方が有利なんだ…?
      • ふむ。最大サイズ50なので、どこまでを足し算にするか全部調べちゃえ。いくつの数まで足し算が有利かとかを考えるよりそちらが確実
      • 再提出
    • 1000
      • 50分近くあったが
      • とりあえず初期状態でA-B-Cと並んでるとすると
      • A-B間の距離とB-C間の距離の最小公倍数最大公約数で系全体が割れるなぁとか
      • そんなことを考えてたけどまぁどうしようもないですね
      • Div1全体でもほとんど提出がないので諦めた
    • 500のテストケース考える
      • DivisionSummary見てたら、なんかめっちゃ500の再提出してる人が多い。あんな人やこんな人まで
      • さらにコーナーケースを考えるがそこまで変なのは見つからず、かえって不安になってしまった
      • 小さい数から足すのではなく中央を残しちゃってる人のために {1.5, 1.6, 1.7} とか
  • Challenge
    • うおっ、Challenge開始直後にサーバーが落ちた
    • ありゃーこれはノーコンテストになるかもね
    • Twitterの皆さんの様子を見てみよう
    • あれ、Twitterも落ちてる…?
    • うわーLANケーブルが抜けかかってただけやん
    • 何もできず
  • System Test
    • 2問とも通った
    • 部屋で撃墜されてない回答は全部通ってた。皆さんすごい
  • スコア:247.74 + 270.62 + 0.00 + (50*0-25*0) = 518.36
  • 順位:85位/651人
  • レート:1726→1829

そろそろ黄色中位に安定してきたと思って良さそう。そしてそびえたつ2000の壁