Memo

Twitterに書くには長すぎることを書きます。Opinions are my own.

GigaCode 2019に参加しました

gigacode.connpass.com ヤフー社員枠で参加 + LT + 設営撤収のお手伝いをしました。

LT

www.slideshare.net

会社の名前が出るので、会社の同好会でやっていることの紹介を簡単にしました。また、デモではVirtual Contestをする際にCodeforces APIからユーザ情報をスクレイピングして、まだ1問も解いたこともないコンテストを出力するツールを紹介しました。

github.com

数十行のスクリプトでいろいろできるのでおすすめです。

個人的にはバルーンアートのLTが1番好きで、設計図がグラフそのものになっていたのが面白かったです(よく考えるとそれはそうなんですが)。

コンテスト

  • Dは二次元累積和をして上下を固定して尺取りで O(H^{2}W) を思いついたが尺取りを書きたくないので上下左を固定して二分探索  O(H^{2}W \log{W}) を書いた。解説によると二分探索すら必要なくて、  O(H^{2}W^{2}) が間に合う。
  • Eは最初  N \leq 100000 と誤読していて何かしらのデータ構造を疑っていたけど、よく読んだら  N \leq 2019 なので普通にDPできました。タイムロス。 N = 100000 でもLi Chao Treeで解けるらしい(ライブラリ持ってない)。
  • Fは満点狙いをしていたけどいい感じのプログラムが書けずじまい。。。最大長方形を知っている前提だと、端を固定して数え上げて重複を消すという部分が本質な気がする(これに全然気づかず、真に条件を満たす長方形を最初から数えあげようとしていた)。例えば下を固定して数え上げた場合、上左右が同じ長方形で下の座標が1ずれている長方形が2つある場合、小さい方の長方形は不要。
  • Fに時間を割きすぎて、GとHもあまり部分点が稼げず。

金メダルほしいなと思っていたのですが、銅メダルでした。smikenさんがオンサイト1位取っててさすが。

パズル

URL: ALGORITHM PUZZLE - GIGACODE 2019

3問を15分で解きます。プログラミングしてはいけないというルール。

  • 1問目は「器物損壊!高橋君」という(問題文が)有名問題の類題なのですぐにできます。
  • 2問目はすぐ2分探索が思いついたのですが、斜めには気づかずに適当にやったらいい感じに当たってすぐ終わりました。ここで3問目に時間を残せたのが勝因。
  • 3問目は人力山登りをして焼きなましを何回かしました。最後の焼きなましで時間ギリギリで97点になったのは嬉しかった。

結果は297点でオンサイト2位タイ。嬉しい。

懇親会

エディタについて尋ねられてCLionとjHelperの話をしたけど、動画とかで説明したほうがわかりやすいのでそういう動画を作りたいなと思いました。ライブラリのコピペすら不要(自分の設定だとAlt+Enterで補完してくれる)で最高です。

所感

よくイベントの運営するからわかるんですが、飲食物の提供と参加者からの金銭の受取が入った瞬間にイベント運営は格段に難しくなります。それを高校生2名だけでほぼ全て回しきってて凄すぎます。このイベントに向けた熱量と努力を感じました。ありがとうございました。