藍橋カップに参加した話
この記事は、 大阪工業大学 Advent Calendar 2020の5日目の記事です。
去年から日本で開催されたばかりであまり知名度は高くないかもしれませんが、藍橋カップと呼ばれるプロコンがあります。
今年は藍橋カップの予選が9月頃に開催され、私はそれに参加して2等賞を取りました(ちなみに一番上は1等賞、優秀賞はなぜか3等賞より下で直観に反している...)。
本来は予選と決勝で2回コンテストが行われる予定でしたが、コロナの影響で決勝は中止になり、予選だけになりました(悲しい)。
というわけで、予選で上位を取った人で表彰式が行われることになりました。
場所は案内によると 兵庫県立大学の情報科学研究棟1階コモンズスペース とだけあり、住所が書いてありませんでした。
「情報」ってついてるし情報科学キャンパス(三宮の近く)に行けばいいやと思っていたら、 実は学園都市キャンパス(神戸の西の方)で、会場WAからの数十分ペナ(物理)で表彰式TLEするところでした。危なかった。
いい景色。
表彰式の方ですが、事前に私が運営に「表彰式は行けたら行きます(意訳)」と伝えていたので、 運営が私が会場に来ることを想定していなかったようでした。
なので、私の表彰状だけ大学に郵送されており、表彰式ではエア表彰状を受け取って終わりました。
[ここに表彰状の写真を入れてドヤる予定だった。。。]
それ以外で大きな問題が起きることなく終わり、表彰式の後は某レッドコーダーの講演を聞いたり、兵庫県立大学の方と交流したり、きくちさんと鍋を食べたりして帰りました。
— chocobo (@akachocobo7) 2020年12月2日
OITでは藍橋カップで上位に入ると学長から表彰されるらしい*1ので、 ぜひ参加してみてはどうでしょうか。
*1:去年はあったけど今年はどうなるだろう...
cpsco2019参加記
ノリと勢いで参加しました!
来年もあったら参加したいと思うほど楽しかった٩( 'ω' )و
day1
おさしみさんがA、しいさんがBCD、ぼくがEを解いて5完でした。 チーム戦だと自分で詰めきれない部分をチームメンバーが助けてくれることがあって楽しいです。
←チームメンバーに6重ループを要求した人
— chocobo (@akachocobo7) May 9, 2019
ふえぇぇぇ、しかもN重ループ(1−6)で場合わけまでしたよ🥴 https://t.co/gJEFu5BDir
— しい (@siiiii1107) May 9, 2019
day2
Session2はチーム全員が初心者ということでチーム名をbeignnerにしました。Dまでは順調に解いていきましたがE以降は何も分からず椅子を温めました(ア
Session3はきくちさんとくりぼさんで参加しました。くりぼさんがAB,きくちさんがC,ぼくがDEを解きました。 きくちさんが最後まで粘って考察していてすごかった...
懇親会
懇親会ぽい! pic.twitter.com/LVKqHD0oZr
— chocobo (@akachocobo7) May 5, 2019
会場で話せなかった人とも話すことができて良かったです!ただ時間が足りなくて全員と話すことはできなかった...
感想
めちゃくちゃ楽しかったです。ありがとう😭😭😭#CPSCO2019
— chocobo (@akachocobo7) May 5, 2019
RUPC2019参加記
RUPCという立命館大学で行われている競プロイベントに参加しました。
DAY 1
会場に入る前にみかんさんと立命館の学食をいただきました。
美味しかった!! pic.twitter.com/eH6J6TJXNu
— chocobo (@akachocobo7) March 5, 2019
会場入り
— chocobo (@akachocobo7) March 5, 2019
自己紹介フェーズが終わった後はチーム編成ですが、事前にきくちさんとホスフィンさんとでチームを組んでいたので待機してました。
きくちさん @onakaT_Titai と ホスフィンさん @mine691 で rupc_nekomimi というチーム名で出ます!
— chocobo (@akachocobo7) March 5, 2019
猫耳を着ける予定だったのでチーム名がnekomimiなんですが、事故で猫耳が着けられませんでした。悲しみ
コンテスト
- ホスフィンさんがAを解く
- きくちさんがBを解く
- ぼくはCを考えていたもののよく分からなかったのでDを考える
- ホスフィンさんときくちさんがCを解いてEを考察する
- Eの考察が終わったらしく、ぼくがEの実装をする
- WAが出る。3人でデバッグするも時間切れ
ABCの3完でした。ぼくはDの考察とEの実装を担当しました(ひゃっ(何も貢献できてない(申し訳ない!!!
言い訳
E問題一文字変えたら通ったので実質4完
— chocobo (@akachocobo7) March 5, 2019
DAY 2
2日目はひらひーらぎさんとこうきさんと組みました。
@aim_cpo さん @kouki111x1 さんとチームrupc_jankenで出ます!
— chocobo (@akachocobo7) March 6, 2019
コンテスト
- こうきさんがAを解く
- ぼくがCを解く
- ひらひーらぎさんがBを解く
- 順位表を見るとEとGが解かれていたので、EとGを考察する
- GがNimっぽいなぁとなるがWA連発
- ひらひーらぎさんがEはダイクストラやればいけそうとのことだったので、ぼくがEの実装をする
- Eが通ったのでGの考察をする
- テストケースをいっぱい作ってその勝敗を眺めた結果、解法をエスパーすることに成功する
- Gが通る
ABCEGの5完でした。
↓これすごい
目の前にメイドと幼女とJKがいて左前にうさ耳とか猫耳付けてるチームがいるコンテスト、そうそうないだろうなぁ(めっちゃ面白かった
— chocobo (@akachocobo7) March 6, 2019
DAY 3
3日目はtubuannさんとはりぼてさんと組みました。
Day3 は「rupc_staba_de_mac」 @tubuann1 と @akachocobo7 と出ます()
— はりぼて (@__hrbt) March 7, 2019
コンテスト
- はりぼてさんがAを解く
- ぼくがCを解く
- tubuannさんがBを解く
- Dを考察して、解法をはりぼてさんに伝えて実装してもらう
- よく分からないバグが発生し、もう一度実装しなおしたら通る
- その間にtubuannさんがEとFを考察する。tubuannさんによるとEはbeetさんのいるチームが30分で通していたのでライブラリを貼ると通るらしい。ぼく「なるほど」
- tubuannさんがEを通す
ABCDEの5完でした。
感想
去年は座るだけの人だったので問題が解けるようになっていて嬉しかった!
コンテストの問題文もRUPCに参加している方々も面白かったです!!
懇親会とかで話しかけに行けなかった人がいたのでコミュ力上げたい...
のみさんみたいにガンガン話しかけに行けるようになりてぇ
— chocobo (@akachocobo7) March 7, 2019
AtCoderで青色になった話
去年最後のコンテストで青になりました!!
競プロを始めた頃は数学もプログラミングもダメダメだったので青色になるなんて考えもしなかったのですが、ゆるく続けている内にレートも上がり続けて、気がついたらこのブログを書いています。
青になるまでやってきたことをまとめると次の2つです。
過去問を解く
AtCoderの問題を900問ぐらい埋めました。 900問は多そうに見えますが、実は簡単な問題ばっかり解いています(えー
AtCoder ProblemsとAtCoder Scoresのデータを見ると以下の通りでした。
過去問に挑戦するときは、まず初めに10分考えて、方針が掴めたらもうちょっと考えて、何も分からなかったら諦めて解説を見たりブログを読んだりしました。それでも分からなかったら、ACしているソースコードを写しながらどういう動きをしているか考えました。
こんな感じで一日に1~2問のペースでACしていました。
アルゴリズムの勉強
勉強の仕方は色々あると思いますが、自分は蟻本を読んだり、TwitterのTLで見かけたアルゴリズムを検索して、ブログを読んで調べたりしました。蟻本の内容が途中から自分には難しかったので、分からなかったところはネットの力を借りて勉強しました。
自分がAtCoderでよく使ったことがあるアルゴリズムは、だいたい
- 全探索
- 累積和
- 深さ優先探索
- 幅優先探索
- 貪欲法
- DP
- Union-Find
- ダイクストラ法
- ワーシャルフロイド法
- ユークリッドの互除法
- フェルマーの小定理
- 二分探索
- しゃくとり法
- セグ木
- Binary Indexed Tree
こんな感じだったと思います。
次の目標
ここまできたら、次は黄色を目指していきたいです。レートの上がり具合や地頭を考えると黄色は絶望的ですが...
それと、競プロを楽しむ気持ちを忘れずに続けていきたいです。
ACM-ICPC 2018 Asia Yokohama Regional 参加記
この記事は、 OIT Advent Calendar 2018の13日目の記事です。
予選落ちな予定でしたが、繰り上げにより突如参加することになったチームodan(chocobo, mkan, hm05)です。
弊学がアジア予選に出るのは3年ぶりとのことで、予選通過のメールを見たときは泣きかけました。
1日目
新幹線でチームメンバーと合流しつつ、中華街に寄り道しつつ会場に着きました。
— chocobo (@akachocobo7) December 8, 2018
ちょっと休憩していたら開会式が始まりました。 が、英語が全く分からないので、ジョークで会場が笑っている場面では満面の笑みを浮かべるだけで終わりました。
リハーサルでは特に問題も起きず順調に進みました。 問題をACしたときに風船が届くシステムが衝撃的でした。
リハーサルが終わったら、odanさんとodanメンバーで中華の食べ放題に行きました(ここでチーム名の承諾を得る)。 その後、赤レンガ倉庫に行きました。
赤レンガ倉庫のエモエモ(?)夜景 pic.twitter.com/fCLSuiDB1I
— chocobo (@akachocobo7) December 8, 2018
2日目
無事起床に成功し会場へ。
コンテスト前に、ICPC国内予選で着ていた予選突破の願いが込められた服(?)を着るようにチームメンバーから言われたり言われなかったりしたのですが、流石にまずいと思い、今回は狐耳を着けました。
コンテスト
- 初めに問題文の読解でA問題をhm05さん、B問題をmkanさん、C問題を自分が担当
- Aは実装が面倒だけど出来そうとのことで、hm05さんがAを実装している間、mkanさんと自分でBとCを考察。
- BはO(n3)しか思い浮かばず、Cはシミュレーションでやってみることに。
- AをAC。mkanさんがBを実装。
- TLEする。Bは置いといて自分がCの実装に。
- サンプルが合わず長時間デバッグ。hm05さんの指摘で実は問題の入力の仕様を勘違いしていたのが原因だと分かり、サンプルが合ったので提出。
- TLE。もしかしたらと思いシミュレーションではなくDPを実装してみたらAC。
- Bが何も分からず、枝狩りO(n3)を提出したりO(n2logn)を 提出したりするもTLE。
- hm05さんが109個のbool配列を用意し、愚直O(n3)を投げたところAC。
- 残り1時間で、残りの問題をとりあえず読んだり、順位表を眺めたりしてG問題の考察を始める。
- 「BITを使いそう」まで考察を進んだところで、時間がもう足りないということでrand()を出力するプログラムを終了5分前に投げてコンテスト終了
というわけで、ABCの3完でした。
コンテスト終了後はスポンサーさんの挨拶とコンテストの解説(日本語でも理解できるか怪しいところなのですが英語なので何も分からなかった)とYes/Noおじさん(と言われている)の順位表発表でワイワイしました。
懇親会
チームメンバーと共に企業さんのブースを一周する旅をしました。 会社についてお話をさせてもらったり、ステッカーや同人誌、キーボードのキーなど色々もらったりしました。企業さんの方からインターンに来てくださいと言われたとき、競プロerの力に企業さんが目をつけているんだなあと思って、すごい世界だと感じました(自分はすごくないためア)。
懇親会のあとは小籠包を食べました。
3日目
P社 → L社 → I社 と企業見学に行きました。falさんと碧黴さんが同じグループだったので何度か会話しつつ巡ってました。見学の詳しいことは企業秘密で言えないのですが、どのオフィスも魅力的で、将来はこんなところで働きたいなあと思いました。
企業見学後はラーメン
東京らーめん🍜 pic.twitter.com/enQXhcrMsj
— chocobo (@akachocobo7) December 10, 2018
最後に
45位でした。
— chocobo (@akachocobo7) December 9, 2018
来年は企業賞もらえるぐらい強くなりたいのです pic.twitter.com/5gQKe6YKYp
CODE THANKS FESTIVAL 2018 参加記
前日
東京ヾ(●_ゝ-*)イクゾ!! pic.twitter.com/COwJIZNrer
— chocobo (@akachocobo7) November 24, 2018
ちょっとだけ観光しようかなと思ったけどドワンゴのコンテストがあったのでそのままホテルへ
コンテスト前
緊張しすぎてお腹痛くなってきた…
— chocobo (@akachocobo7) November 25, 2018
そわそわーっとしてました
そこでちょくだいさんが
ステッカー持って歩いてたのにステッカーちょーだいって言われなかった
— chokudai(高橋 直大) (@chokudai) November 25, 2018
その後
ステッカー😭😭😭 pic.twitter.com/z9OJiF7rBS
— chocobo (@akachocobo7) November 25, 2018
手に入れるチャンスが一生無さそうだなーと思ってたのでとても嬉しかったです。Yay!
生のちょくだいさんが新鮮でした。
コンテスト直前
パーカーを得るための条件とは...
上位50位でパーカーかー#code_festival
— chocobo (@akachocobo7) November 25, 2018
黄 8
— chocobo (@akachocobo7) November 25, 2018
青 52
水 34
緑 5
茶 1
っぽい?#code_festival
(ここでパーカーを断念する)
コンテスト
A - Two Problems
ここはパパッと
B - Colored Balls
200点 #とは
パッと解法が思いつかず、CとDを解いた後に手をつけました。
二分探索しようとして2WAした後、ループが間に合うんじゃない???とO(x/3)を提出したら通りました。はセーフなんですね...
C - Pair Distance
ソートして累積和とっていい感じに
D - Concatenation
貪欲の空気を感じ取ったので
E〜
結果
4完85位でした。
DPが出来るようになりたい...
懇親会
コネクションビンゴという自分の尊敬してる競プロerや好きなアルゴリズムが同じ人を探すイベントがありました。
ビンゴが終わるまでは話のネタにできたりしたので良いイベントでした。
あとはTwitterかイベントかで見たことのある人をひたすら探していました。何人かはお会いできて良かったのですが、会えなかった人もいて残念というお気持ち。
かわいい名刺もいただきました。
めちゃくちゃ可愛い〜 pic.twitter.com/q7KjEUZapN
— chocobo (@akachocobo7) November 25, 2018
感想(?)
来年も出たい!
パーカー欲しい!!!
初めてのCSSアニメーション
大した作品ではないですが、一区切りついたので何かしら書いておきたいと思います。
完成品
css初心者の私が初めて作ったcssアニメーションです!
— chocobo (@akachocobo7) October 31, 2018
色々苦労した所はありましたが何とか形に持っていけて良かったです。https://t.co/u9Rap17ldD pic.twitter.com/BUt9HUYd6E
ソースコード
作ったきっかけ
yui540さん と kaitoさん がすごいcssアニメーションを作ってたのを見て、自分も作ってみたいと思いました。
感想
・cssもhtmlも触ったことが無かったので、少しずつ勉強を進めていきながらアニメーションを作っていきました。
・最初は思い通りに動くアニメーションがなかなか作れませんでしたが、何度も試行錯誤してるうちにちょっとずつ出来るようになっていったのは嬉しかった!
・今回はゆっくりめのcssアニメーションを意識してみたりした。ただこれがすごいと思わせるような動きをさせようと思うとめちゃくちゃ難しい...
・部内コンで出してみたら思った以上に高評価でLT部門1位をいただいて驚きました。 ちなみに得た景品は...
部内コンの景品で"義妹との生活"というやつを選んだ結果、シルバニアファミリーをGETしました。
— chocobo (@akachocobo7) October 31, 2018