Hatena::Grouptopcoder

反省会。

2012-09-07 Friday

SRM555 Division I 00:06

前回はばっちり寝てた。

ぞろ目だからやたら5が並んでたのか…今気づいた。

 Level One - CuttingBitString (255)

  • binary列を切って5ベキだけにできるなら切った個数を返す
  • とりあえず5ベキ全部出してみよう
  • 単純に探せばいいんじゃね?
  • で探すコード書くのに30分かかるという…

Level Two - XorBoard (555)

  • カードを格子状に並べる。初期状態は全部裏
  • 列全部 or 行全部ひっくり返す操作を指定回繰り返す
  • 終わった時に表が S 枚の場合の考えられる操作の組み合わせ総数を求める
    • 「2回ひっくり返した行が2つ、1回ひっくり返した行が1つ」とかは1通りと数える。結構わかりにくい
    • 「1行目2回、2行目1回、3行目2回」と「1行目2回、2行目2回、3行目1回」は同じ
  • 行・列独立で考えたい
  • 行・列それぞれひっくり返した回数の偶奇だけで最終状態は決まる
  • 指定回数に足りない分を分配して
  • それぞれの場合の数求めて
  • 行と列で掛け算して合計すればいい
  • つながったので実装
  • 意外と面倒
  • タイムアップ

Challenge

  • 撃てそうな気配なし
  • Level One は全5ベキについて1文字目から順に一致するかどうかをとにかく調べて、あとでまとめるような実装とか
  • Level Two は最後まで計算し切らないとなー

結果

  • +139.89
  • 1222 → 1235
  • 微増

http://community.topcoder.com/stat?c=coder_room_stats&rd=15177&rm=314229&cr=23072275

反省

  • これから