naoya_t@hatenablog

いわゆるチラシノウラであります

DISCO presents ディスカバリーチャンネル コードコンテスト2019 本戦

1/19(土) 9:00-18:20
株式会社ディスコ

楽しかった
今回は辞退せず参加して良かった

起床

目覚ましを6:30amにセットして寝た
6:29に起きた
→AC(というか目覚ましに勝った)

移動

大森海岸駅から歩いてすぐだった

受付

9:00集合〜9:50受付締切までに到着すればよくて
その中頃に到着

  • DDCCと書かれた水色のコンテストTシャツ
  • 首から下げるネームタグ
  • マスク

を頂いた。
f:id:n4_t:20190120222437j:plain

1つ空いていた最前列の席に陣取る。お手洗いでTシャツに着替える。
ステッカーが1人1シート支給されていたので貼った。
f:id:n4_t:20190120222426j:plain

chokudai氏の号令で全員でAtCoderサーバにF5アタックするの面白かった。

コード部門

10:10〜12:10

A - レース (Race) (300)

とりあえずRLEして
'>'の一番長いやつを1つ伸ばすだけで良くね?
あれ
計算合わないか*1
">>->>>" みたいな時にくっつけるみたいな戦略が必要では
とすると
">-"ないし"->"の境界部分で可能な時短をすべてpriority_queueに放り込んで
一番いいやつを
→AC 42'13
https://atcoder.jp/contests/ddcc2019-final/submissions/4039771
みんなもっと早く解いてるし

終了後

先頭と末尾が "--" なのは読めてたけど、あらゆる '-' が単独で出現しないという事が読めてなかった
なんだそれなら一番長い '>' の連続部分を1つ伸ばすだけ
→AC
https://atcoder.jp/contests/ddcc2019-final/submissions/4051199

教訓
  • 問題文と制約とサンプルケースを落ち着いて読み解いてから考える
  • 300点問題でそんな解法が必要なのか冷静に考える

B - 大吉数列 (Array of Fortune) (600)

部分点狙い?いや部分点と完全点で難易度変わらない気が

  • どんなに頑張っても \frac{n(n+1)}{2} までしか作れない。
    • Rがそれを超えるならNo Luck
    • 1刻みで調整できる?のであればそれ以外ではNo Luckは出ない
  • 大きい順に置いていくか
    • 大きい方からK個置いた時点では0
    • K+1個目で+1, K+2個目で+2, ...
      • N=5,K=2のとき 5(+0) 4(+0) 3(+1) 2(+2) 1(+3)
    • 配列にpush_backしていく感じ
    • 1つの数をpush_backするたびに (そこまでの個数-K+1) 増やせる
  • (配列のサイズ-K) 未満の余りが出た回で調整。余りがkならk+1番目(0-base)に挿入すれば良い
    • N=5,K=2で 5432 まで積んでいたとしたら (4-2+1=3が最大)
      • 5 1(+1) 4 3 2
      • 5 4 1(+2) 3 2
      • 5 4 3 1(+3) 2
      • 5 4 3 2 1(+3)
  • これ以上増やしたくないなら最大値より左に(右から左へ)積んで行けばいい
    • わざわざinsertしていく必要はなくて表示するときに頑張ればいい
  • 降順の配列だと操作しにくいので昇順で考えて、N-iを表示するようにした

→WA(3)

  • 左に積むやつがずれていた(x1)
  • 最後の端数の処理が間違っていた(x2)

直して
→AC 1:20:31
https://atcoder.jp/contests/ddcc2019-final/submissions/4040255

C - 光の反射 (Reflection of Light) (700)

残り30分だし*23問目は無理かなあと思いつつとりあえずCを開ける
幾何問題。(みんなこれ飛ばしてない?)*3

  • とりあえず回転させて光源をX軸正方向に持ってきて(デバッグしやすそうと思って)
  • そこから柱の円への接線2本を延長した向こうで部屋の壁とぶつかる点(x2)を求めて
  • その2点間の弧の上には光が届きそう
  • 次回はその2点(のどちらか)に光源を置いて同様の処理を

みたいな感じで攻めようと思ったけど幾何学コーディング力が足りずに試合終了

D - (700)

開いてない

E - (600〜1200)

開いてない

12:10 昼食(DDCC2019特別ビュッフェ)

食べられるものがあるか心配して前回(2017)は辞退したのだけれど
前回のビュッフェの写真を見て大丈夫だろうと判断

お寿司美味しかったです
あとスパゲティ
(食べ物がすぐになくなってしまって少し物足りなかったかも)

13:25 装置実装部門

解説が5分とか
扱うべきパラメータが多くて焦る

予選 13:30-14:00

  • スタート地点→A→B→排出地点 or スタート地点→B→A→排出地点
    • その後は 排出地点→A→B→排出地点 or 排出地点→B→A→排出地点
    • 90行になるまでぐるぐる回しておけばよいか
  • ビーカーの容量どこに書いてある?
    • 円錐の体積の公式から求めるやつ?
      • 自信なくてぐぐった*4
    • Aでビーカーの容量の半分、Bでもう半分を注ぐ
  • あとは加速減速のコントロール
    • XとY別々のパラメータで同時に動くと
    • あまり動かない方の軸の残り時間対策
    • X軸(またはY軸)方向に全く動かないケースとか死にそう
  • ビーカーの同じ場所で液を受けてはいけない
    • 使える場所を先に用意してプールしておく?

実装に戸惑って1投もできなかった

正の得点を得たのは19人(みんな仲良く20位タイ)

社内見学ツアー

  • A、Bに分かれている。ツアー初めての場合(自分はこちら)A
  • 渡り廊下が吊り橋みたいだった(下を見ると怖い)
  • 社内にプールとか蕎麦屋がある(すごい)
    • これは住める
    • それ以前にコンテスト会場の隣室に銀行ATMがあったのを見逃さなかった
  • ウェハを磨いたり裁断したりする技術

15:00 装置実装決勝観戦

  • 水がこぼれる
    • コーナリングで大胆にこぼれる度に観客大爆笑
    • この面白さは全く期待していなかった
  • ビーカーが空っぽの時は最高速で移動しても大丈夫
  • 半分注いだ段階でもまあ最高速で大丈夫?
  • 液がビーカーいっぱいに入っている時は走行中に曲がると慣性で水がこぼれる
    • 波打つ水の周期を考慮してこぼれないコーナリングをするという可能性に社長さんが言及

表彰式

yosupoさんが二部門制覇して100万円相当の賞品賞金GET
感動的

それはさておき
おなかすきました

懇親会

食べられるものが稲荷寿司しかなくて残念
お腹空いたし離脱したかったけど、最後の写真撮影まで帰れず

集合写真撮影

お腹空いて意識が遠のいてる中、「装置」を囲んで写真撮影。
f:id:n4_t:20190120222225j:plain

解散

直帰
遊んで帰る気力が残っていなくて残念...

*1:分数の足し算がバグってたせいだった

*2:これは勘違いで40分あった

*3:Dの55人に対し15人しか通してない

*4:\frac13πr^2h