• 先日iPad Air 9.3.2を脱獄してから久しぶりにいろいろ遊んでます。
  • ech0chrome iPhone Repo on Cydia (昔私がビルドしたソフト群)も一部使えました。ncompressとか(tar.Zとか今は使われてるんでしょうか…)
  • しかし、nkfやPuTTY、OpenHSPは「Illegal Instruction: 4」と出て動かない。
  • 少し調べたところ、http://theiostream.tumblr.com/post/63923259800/patching-iphone-gcc-binaries-to-armv7s に行き当たりました。ldr r3, [r3]命令がarmv6/v7専用命令になっていて、armv7sで解釈できないのが原因とのこと。armv7sで解釈できるように手直しすればよいそうです。crt1.oだけがおかしく、原因は不明とのこと。
#!/bin/sh
for file in "$@";do
sed -i'' 's/\x00\x30\x93\xe4/\x00\x30\x93\xe5/g;s/\x00\x30\xd3\xe4/\x00\x30\xd3\xe5/g;' $file
ldid -S $file
done
  • まあ、当時はiPhone 3GSやiPhone 4の時代だったので、v7sのことなんて頭になかったですからねぇ…
  • ビルドスクリプト、もしあったら、パッケージ化しようと思います。バックアップは今何処^^;(開発機のiPod Touch 3rdはヒューズが飛んだ状態)
  • てか、私の出してるiOS gccは間違いなく壊れたバイナリを出力するんですが、どうしたもんか。3.1.2用のtoolchainをセルフコンパイル用にポートしただけなので、新たにtoolchainを作る能力は私にはない^^;

  • ちなみに、Illegal Instruction: 4はこのパッチで直せますが、mmap error 22は直せません。

  • https://forums.developer.apple.com/thread/7524 によると、32bit dylibを読み込むにはMach-Oのヘッダがどうこうという話っぽいです。

  • 話は変わりますが、アプリ領域にアクセスするのが不便なのでapplinkなるソフトを作ってましたが、これもiOS8で使えなくなってた模様。com.apple.mobile.installation.plistがなくなったため。
  • 突貫工事で新たに作りました。Pythonが必要ではありますが。しかもリンク名がアプリ識別子になる制限付き。
  • https://gist.github.com/cielavenir/089ae47301458db8e2e04a67f72132b3

http://abc042.contest.atcoder.jp/tasks/arc058_a http://arc058.contest.atcoder.jp/tasks/arc058_a

概要

  • N以上の数値で、与えられた数字を使わずに作れる最小のものを答える。

高速解法

  • 使って良い数字の集合(入力の補集合)Aを求めておく。
  • まず、与えられた数値の文字列表記Sの前から後ろに向かって、使って良い数字以外が含まれる桁jを求める。
    • もし見つからないなら、Sを出力して終了する。
  • 桁jから前側に向かって、Siよりも大きい数字がAに含まれるような桁kを求める。見つからなければ-1とする。
    • 大きい数字がAに含まれるとは、繰り上がりを受け切れるという意味である。
  • kが-1ならばAの先頭(ただし先頭が0ならば次の要素)を出力。0以上ならばSの先頭からk文字とSkよりも大きい数字のうち最小のものを出力。
  • Aの先頭要素を(Sの文字数-k-1)だけつなげて出力。
    • kを-1にしておくとこの部分での場合分けが不要になるというわけ。
  • 2回Sを走査するので、計算量はO(S)あるいはO(logN)となる。

まとめ

  • 土曜日、帰宅後に問題ページを開いて最初に思いついた解法がこれです。O(NlogN)解法の方が明らかに実装が楽なので、コンテストとしては負け。
  • 復習コンテストのストックにしなかったのは、テストデータ作成が面倒だったからです。

http://abc042.contest.atcoder.jp/submissions/818591

  • 1/3、何を思ったか研究室から貸与されたiPadにインストール。まあ、共有物ではないし…
  • ULC、面白いシステムだと思う。(最後までプレイすることで完了させられるようになったのは最近らしいけど、それを差し置けば)難しい譜面も繰り返しプレイすることでクリアできるようになる点は良い。
  • 節分キャンペーンを進める。所持していない楽曲はフレンド募集スレッドからプレイさせていただくことを学習する。シェアソングはソーシャル要素の答えの1つだと思った。
  • 1/15、Break down獲得(RP600突破)。しかし、節分キャンペーンを進めた結果、同時期開催の個人戦報酬を落とす。まあ、ソシャゲを始めた時のイベント報酬が厳しいのと近いので、しかたがない。個人戦の課題曲が全て未所持であることも理由。
  • ランダムセレクト祭。ランダム選曲すると過去の曲が常駐するかもしれないというイベント。とりあえずフルコンボ譜面を増やす。
  • 1/24、Azitate獲得。条件は難しい難易度であるMASTER譜面をULTIMATEで5曲クリアということで、当時はかなりきつい条件だった。ランダムセレクト祭で引き当てたEternallyが5曲目だった。
  • 期間限定RP曲、未確認XX生命体を購入すれば5曲とも所持することになるので、購入。結果、2/8、RP1000突破。NEXT FRONTIER獲得。簡単な難易度であるSTANDARD譜面の難易度値がかなり高いんですが、慣れれば自然と指が動く面白い譜面。
  • 2/17、RP1100突破。期間限定RP曲+上位20曲のため、いろいろ埋めないと上がらない。あと、Lobi入れた。
  • 2/18、バレンタインキャンペーン完走。きつかったのがMake It Fresh HARDフルゲージと最後の1ページ MASTER Sランク。まあ、クリア出来てよかった(節分キャンペーンリバイバルの最後の報酬を諦めた理由がMASTERフルゲージで、それよりは簡単ですし…)。
  • 2/28、RP1200突破。Touch of Goldと雨の音が虹を呼ぶでMASTER ULTできたのが大きい。
  • 3/1、期間限定RP曲のうち4曲しか所持していないため、RP1200を割る。
  • この進行がハイペースかどうかを訊くのは愚問とのこと。落ち着いて考えればそうなのですが…。ごめんなさい。
  • まあ、個人個人自由に楽しむのが第一ですよね。
  • あとは、アンロックゲージが溜まったからといってすぐにアンロックチャレンジを開始すべきかという質問も愚問のよう。チケットの消費に慎重な人もいるかもしれないので。
  • CROSS X BEATSを始めて2ヶ月、42曲となりました。(RP以外の)ミッション曲を全部回収したこともあり、今後曲がどんどん増えていくということはないでしょう。
  • というわけで、時系列でまとめておきます。
  • 緑鍵
  • 黄鍵
  • 祭曲をラ祭以外の方法で入手
曲数 日時 取得楽曲
10 1 / 3 Wanna Be Your Special / Touch Of Gold / 雨の音が虹を呼ぶ / DIAMOND SKIN / Wasteland
When You Call My Name / キミとMUSIC / Aqualight / Wanyo Wanyo / Lotus Love
13 1 / 5 Loveless / Landing on the moon / Jahacid
16 1 / 6 Freak With Me / ホントのワタシ / Dirty Mouth
18 1 / 8 Hi / Binary Overdrive
19 1 / 9 Anomie
20 1 / 12 Otherside
21 1 / 13 What is Wrong With The World
23 1 / 15 Break down / エアリアル
24 1 / 20 DAZZLING♡SEASON
25 1 / 22 Eternally
26 1 / 23 Giant Killing
28 1 / 24 Azitate / Cross + Angel
29 1 / 26 everKrack
30 1 / 28 Winter, again
31 2 / 7 未確認XX生命体
32 2 / 8 NEXT FRONTIER
33 2 / 11 The Epic
34 2 / 14 How True Is Your Love
36 2 / 15 nightmares / default affinity
37 2 / 19 JUSTICE from GUILTY
38 2 / 20 Re:Milky way
41 2 / 21 エール / 誘惑 / オーバーラップ
42 2 / 22 Nu Heat
44 3 / 10 BASS ANTICS / Doki Blaster
45 3 / 12 BRAND NEW
46 3 / 22 最後の1ページ
48 4 / 8 boule de berlin / cloudstepping
50 4 / 9 残響のアカーシャ / Impact
51 4 / 11 the Last Missile Man
53 4 / 23 光年 / Human Nature
55 5 / 5 Azitate (Prologue Edition) / Touch Of Gold (Bongo Mango Remix)
56 5 / 6 HEADPHONE PARTY
58 5 / 10 イルミナレガロ / Deep Outside
60 5 / 23 Harmony / Flame Up
61 5 / 27 ツカイステ・デッドワールド
62 5 / 28 最終回STORY
63 5 / 29 Landing on the moon (Inst)
64 6 / 1 Into the Cave
65 6 / 6 Wonderful
67 6 / 16 Indigo Isle / Free
78 6 / 21 killy killy JOKER / 海色 / 白鳥の湖 / トルコ行進曲 / イジメダメゼッタイ
Hopes Bright / いいね! / Flowerwall / ギミチョコ / サバイバル
ヘドバンギャー
80 6 / 24 Sunny day / Vespero
81 6 / 28 Anomie (Axiom Style)
82 6 / 29 NEXT FRONTIER -TRUE RISE-
83 7 / 4 Murasame
85 7 / 5 ソンザイキョウドウタイ / 妄想全開
86 7 / 8 tokyo
88 7 / 21 Bi-Zon Zon Zombi (More) / 光年 Remix
91 7 / 22 Reseed / メギツネ / Dreaming Girl
97 7 / 23 Make It Fresh / 逆転裁判 / Raise Your Handz / チルドレン・オートマトン / Designed World
What is Wrong With The World (Cross)
98 7 / 24 Sundrop (Remix)
101 7 / 25 RIDE ON NOW / ロマンシングゲーム / ロックマン
103 7 / 26 MERCURY / some day (instrumental)
105 7 / 27 Voice Of House / Z[i]
106 7 / 29 戦国BASARA
107 7 / 30 Virtual Reality Controller
109 7 / 31 ピコラセテ (Inst) / Sapphire
110 8 / 2 Reuniverse
111 8 / 5 VOHリミ
113 8 / 17 Always Thinkg Of You / Machine
114 8 / 18 Timeless encode
115 8 / 20 Moonrise
116 8 / 21 OKOKUNIKOD
117 8 / 23 ホコロビシロガールズ
118 8 / 28 Wanna Be Your Special (Remix)
121 9 / 10 ストレンジ・ディーヴァ / Don’t Walk Away / All U Need
132 9 / 13 シュガーソングとビターステップ / Inner Urge / D.O.B. / ViViD / unfinished
Break a spell / メモリーズ / WE GO / X-encounter / Light My Fire
show
140 9 / 16 電脳少女 / I.D. / Sundrop / some day see you again / 甘い言葉
Driving story / 覚醒awake / NIGHT FEELIN
143 9 / 17 大殺界 / 現実幻覚スピードスター / サマ★ラブ /
145 9 / 18 Addicted / Break Your World
150 9 / 19 Aqualight (Remix) / 魔界村 / ピコラセテ / Reanimation / Omniverse
153 9 / 20 CrossShooter / Rebellion / Underworld
154 9 / 21 SUNDAY リベンジ
155 9 / 22 DREAMIN' OF YOU
157 10 / 8 Assign / Flame Up (Remix)
159 10 / 19 FUNKYBABY EVOLUTION / SuperLuminalGirl Rebirth
160 10 / 24 Bi-Zon Zon Zombi
162 11 / 10 Burning Inside / Resonance
163 11 / 12 BUZZ Ketos
164 11 / 14 DYNAMITE SENSATION
165 11 / 19 Break down (2nd)
166 11 / 20 ASTAROTH
167 11 / 21 Another Chance
168 11 / 23 Hisui
169 11 / 24 Designed World (Remix)
170 11 / 28 Crystal Ribbon
172 11 / 29 Soda Machine / Grand Arc (Club Remix)
174 12 / 7 Interstellar Plazma / Sangeyasya
175 12 / 21 フォルテシモ
177 12 / 25 Metro Night / ULTRiX
178 1 / 13 Filament Flow
179 1 / 14 The Epic Intro
180 1 / 23 Dazzling Darwin
181 1 / 24 EverWhite
182 1 / 26 Isinglass
183 1 / 27 GARNET HOWL
185 1 / 28 starting station / SPLASH
186 2 / 16 Faraway
187 2 / 26 Perfectionism
188 3 / 14 only L
189 3 / 29 Take It Back
191 4 / 26 ChipNotch / ネコふんじゃった
192 4 / 28 STARDUST
193 4 / 29 Over The Blue
194 5 / 8 Frgmnts
196 5 / 19 Adverse / Planet Calling
200 5 / 25 流星 / South wind / BladeMaster / たゆたい
201 5 / 26 IONIZATION
203 6 / 13 MilkyWayTrip / Cash
207 6 / 26 Epiphany / Grand Arc / Ariel / Phoenix
208 6 / 30 KING STUN
212 7 / 16 HDM / Pyromania / 最終列車 / 星達のメロディ
217 7 / 27 YUKARI / Days / 勇敢 / Code Paradiso / FarthestEnd
218 7 / 28 Curse of Doll
219 8 / 5 Into the Cave Another
220 8 / 8 Come Around
221 8 / 10 Silbury Sign
223 8 / 21 カウンターストップ / 未来へのプレリュード
  • 月別獲得数
  • 30,12,4,7,10,19,27,9,37,5,12,5
  • 8,2,2,5,8,7,10

http://abc032.contest.atcoder.jp/tasks/abc032_b

概要

  • sからk文字取り出して、その部分文字列を連想配列に突っ込んで、重複しない数を答える。

高速解法

  • ローリングハッシュを生成する。ローリングハッシュには、hash[a:c] = (hash[a:b]*B**(c-b) + hash[b:c]) % Pという性質がある。
  • 今回はhash[i:i+k]が得られれば良いので、この式をhash[b:c] = ...と変形すれば良い。
  • 部分ハッシュを得るのは、B**(c-b)を事前に計算しておくことでO(1)とできる。
  • また、連想配列がハッシュテーブルならば重複判定もO(1)なので、トータルでO(s)となる。
  • http://abc032.contest.atcoder.jp/submissions/608838
    • ※C++98互換のためunordered_setではなくsetを使っているためこの実装はO(slogs)

まとめ

  • 今回の制約では全くの無駄ですので、解法は賢く選びましょう。
  • なぜyukicoder復習コンテストのストックにしなかったし。提出後に気づいたので後の祭り。
  • P,Qがどちらも0の場合はX==0とY==0だけを数えます。
  • 簡単のため、P,Qの最大公約数を単位とする座標系に変換します。X,Yが変換できなければ弾きます。
  • ここで、各方向に進む回数をa,b,c,dと置くと、
1
2
(a+b)P+(c+d)Q==X - (1)
(c-d)P+(a-b)Q==Y - (2)
  • となります。
  • α=a+b、β=c+dとおきます。
  • αP+βQ==1を満たす(α,β)を拡張ユークリッド互除法で求めます。
    • 代表値を(z1,z2)とすると、式(1)を満たすのは、α=z1X+Qn、β=z2X-Pnとなります。
  • 式(2)を(β-2d)P+(α-2b)Q==Yと変形し、αとβを代入して、整理します。2*P*d+2*Q*b==(Q*Q-P*P)*n+z2*X*P+z1*X*Q-Yとなります。
  • この不定方程式において、 整数解(d,b)を持つようなnが存在する ことが問題が求める条件となります。
    • ここで、上で媒介変数表示により変数を一個減らしたことが効いてきます。
  • (Q*Q-P*P)*n+z2*X*P+z1*X*Q-Ygcd(2*P,2*Q)の倍数であることが条件ですので、-(z2*X*P+z1*X*Q-Y)%gcd(Q*Q-P*P,gcd(2*P,2*Q))==0を判定します。
  • なお、このnを用いてd,bを拡張ユークリッド互除法から求めることで、a,cも求まりますので、原点から何回で目標に到達するかを実際に計算することも可能です。
    • プログラムにおいてeとfが可変。abs(a)+abs(b)+abs©+abs(d)が最小となるようなe,fを求めるのもまた一興かと(やってませんが)。

http://yukicoder.me/submissions/65751

参加記、書く予定なかったけど、私のことがコンテストレポートに載る可能性が濃厚なので、書くことにする。

  • CodeIQパーカー。Code Festivalでパーカー獲得が叶ったので、今日も願掛けです。
  • orisano氏とjmc.miz-miz.bizの話とか(jmc、A問題であふあふなんですが…)。kcs/koj復活お願いします(開発頑張ってください)。
    • てか、yukicoderもkojも、Docker-Builder部分は公開してはどうでしょうか。
    • セキュリティの問題があるので公開はあれですが、問い合わせは可とするのは。どうしてもサイトを作りたい人には、みたく。
時間 コメント
0:00 問題のリンクが違う、昨年に続き。大丈夫ですか。 game.coderunner.jpは開いたので、一番上に書いてあるAPIを叩きまくって負債を抱える大事故。 問題読まないの、絶対ダメ。
0:25 正の得点が取れるプログラムを書くことができた。 仕事を請けて、全割当。納期に収まるかどうかとか考えてません。 コメント変更「今回、今までの全6問で初の、誰でも正の点数を取れるわけではない問題。」
0:40 点数の推移がおかしいのが注目されたらしく、インタビューを受けることに。実はこの時点でほぼ万策尽きていたので、考え中というのは半分取り繕い。ただ、得点が半分になるルールをこの時知った(0:30の時点で負債が半分になっていた)ので、ラッキーでした。 でも…解説放送聞きたかったなぁ。
1:30 仕事量と報酬から計算される仮想乱数値が75以上(外注元の利益を考え80にはしてない。ただ、これ以上下げると安請け合いと判断した)、仕事量が1250以上(報酬は2乗で計算されるため)、得意な仕事(仕事Xに対する全社員の速度の和が90以上)について、外注から請ける処理を実装した。
2:10 0:50〜1:40まで10位をキープしていたが、この辺りで20位ほどに。コメント変更「 闘え、堕ちるまで。
3:00 論文を読みながら過ごし、終了。33位。
  • 10位以内のパーカーはないんですね。願掛けはあくまでパーカーに対するものと考えれば前提が(略)
  • 懇親会、時間中に3ブースかつ先着でトートバッグとかいろいろひどくないですか。
    • 私は特別に頂けましたが。kenkoooo氏からもらったようなものなので、使うことにします。。
  • 食事はあまり摂れませんでした。昼食のサンドイッチを食べたのがコンテスト開始後2時間だったので、まあよかった(サンドイッチ食べたの遅すぎたかなと心配していましたが杞憂に終わった(よくない))。

  • 帰り、レジャーランドでmusecaやった。となりにsnuke氏がいた。対戦とかはしてませんが。twitterで募集かけてればまた違ったかも。そういえばmusecaって現在は対戦機能ないんだった。

  • そういえばインタビューでシエルについて訊かれたんだっけ。スカイガンナー、機会があったらやってみてください。キャラは可愛いのにゲーム内容がかなりガチだったりするので^^;

http://yukicoder.me/problems/896

  • まず、union-findで島の大きさを列挙し、その列挙されたものに対し、bag[0]=-1として、最小値版0-1ナップザックを行えばよいです。
  • しかし、これでは、島の個数をXとすると、O(NX)であり、Xの最大値はNなので、島が多数あった場合に最悪O(N2)となり、TLEになってしまいます。
  • そこで、ダブリングを行います。例えば、大きさ2の島が10個ある場合、「大きさ2コスト1」を10回並べるのではなく、「大きさ2コスト1」「大きさ4コスト2」「大きさ8コスト4」「大きさ6コスト3」の4つを並べれば良いことになります。

    • 最後の3は10-1-2-4のように求められます。
  • http://yukicoder.me/submissions/64709

  • この考え方はtails氏の答案( http://yukicoder.me/submissions/64600 )を参考にしました。ありがとうございます。

追伸

  • 蟻本302ページに普通に書いてありました。まだ読み終わっていないため、勉強不足ということが露呈しました…
  • deque解法が多いのはスライド最小値の考え方で解けるかららしいですね。ダブリング解法は(計算量が少し増えることもあって)少数派のようです。

問題文:https://www.codeeval.com/browse/219/

概要

  • 探偵が複数の都市を全て回るとき、その距離の合計値の最小を出力する問題。
  • こう書くと、巡回セールスマン問題だと思いたいですが、なんと、 最小全域木 問題である。やばくないですか。問題文ではHeと 単数形 で書かれていますが…分身できるんですか。
  • 普通にクラスカル法で解けば良いのでその部分の解説は他に譲ります。もしくは私の解答集を見ても。

注意点

  • Falseを出力すべきなのは、
    • グラフが連結でない場合
    • グラフに示されていない点が存在する場合
  • である。たとえば、1 2 1 | 2 4 1の答えは、2ではなくFalseである。つまり、点番号を詰める必要はないということ。
  • 多重辺を持つ場合、 一番後ろの辺を採用 する。例えば、1 2 1 | 2 1 2の場合、点1と点2の間にコスト2の無向辺を張る。

まとめ

記憶が残っている内に参加記を書いておくことにした。

予選

  • A: D問題、65分で書き終わったが、2分探索がオーバーフローしているのに気付かず、109分でAC。129位。ぎりぎり通過。
  • B: 範囲結合で行けると思ったが、微妙にバグらせて、113分でAC。ただ、予選Bは全完が少なかったので、58位。

木曜〜金曜

短縮王、あなごるにて、とりあえず充足解を出したあと、適当にクロック数を減らす。 一方、Union-Findは再帰しない答案が通ってしまったが、本番で通らないとまずいので、最初の答案は残しておいた。

1日目

  • 9:30起床、初のCodeIQパーカーを来て出発。コンビニでおにぎりを買って食べる。こどふぇすで出るおにぎりだけではもたないことがわかっていたので。
    • 去年は(おにぎりが出るのを知らずに)御茶ノ水の日高屋で食べたが、六本木一丁目ではそういうことはできそうにない。
  • 会場で、スタンプラリーを見て戦慄する。適当に参加すれば12〜3個は取れるが、スケジュールが重なっているため、15個取るにはフル参加がほぼ必須である。

本選

  • スタンプ1
  • パーカーボーダーが6問から5問に減ったと知って喜んだが、その分難易度が左に一個ずれただけなのではという危惧を抱く。
  • ネットワークの不具合でやる気の大半が削がれる。Empire of Codeやったり。コード川柳のネタが生える(※1)。
時間 言語 問題(A-J) コメント
44秒 Ruby A ACa[0].size==5&&a[1].size==7&&a[2].size==5というくそコードを生み出す。gets.split.map(&:size)==[5,7,5]とタイプしていたらFAだった。
0:03 Ruby B [*2..6*N]の中央値でしょ -> WA。焦る。
0:09 Ruby C そのまま置けるときは置く、そうでない場合分解が必要かどうか判断する貪欲法。 AC
0:16 Ruby E 適当に置換 WA
0:20 Ruby E WA
0:25 Ruby B N=1の処理を追加するも WA
0:30 Ruby D 最大被覆-1 WA。rprocon 2013FでnCrの計算式を間違えたり、code festival 2015予選A Dで2分探索がオーバーフローしたりとRHDコンテストには魔が潜む、その魔に今回も喰われるのか。2問で終わるのか。 激しく焦る。胸が痛む。
0:33 Python B N〜N*6の確率を全部求め、その最大を答えるという酷い実装。CheckiO probably-diceをコピった。 AC
0:54 Ruby E 2**3通り、-10〜10に対しシミュレーションする。WA
0:55 Ruby E WA
0:57 Ruby E 探索部分のバグを修正成功。 AC
1:20 Ruby D 謎なDFSを生やす。WA
1:38 C++ D 使わないボタンを1個決めて、それぞれに対し最大被覆を計算すれば良いことはわかるんですよ。O(nm)の定数倍で通そうとする無茶。TLE
1:51 C++ D 手持ちのRMQで殴る。rmq=imos(notes);print min(max(rmq.query(1,e.first),rmq.query(e.first,e.second)-1,rmq.query(e.second,10**5+1)) for e in notes)AC パーカー確定胸の痛み、収束する。 かなりやばい。提供されたおにぎりを食べる。
F〜J 読んだけど方針すら立たない
2:16 Ruby B 普通の解き方でAC
3:00 116位。仕方がない。パーカーで良しとします。ところで、今年はパーカーが159着出ました。去年の54着に比べるとかなりの大盤振る舞いありがとうございます。

夕方

  • スケジュールが遅延するも、短縮王の本番環境は予定通り16時に開く。解説を聞きながら適当に通す。Bが通らずやばい。とりあえずC++版を送る。ACDはRuby版とC版を送る。
  • スタンプ2: タイピングをやる。残り40体ぐらいで死ぬ。終。
  • スタンプ3: ボードゲームをやる。面子みたいなやつ。ビア&プレッツェルというらしい。適当にやったら1位だったみたい。終。
  • スタンプ4: akensho氏トークライブ。AtCoderの裏側をいろいろ聞けてよかった。
  • スタンプ5: 問題解説のスタンプを押し忘れたので戻る。
  • スタンプ6: 太鼓の達人。天下一音ゲ祭2014課題曲であるきたさいたま2000は去年やったので、今年は夏祭り(普)。太鼓の反応悪くないですか。終。
  • スタンプ7: DDR。Mickey Mouse March。ランクSSSらしい。終。ランカーのプレイは見ずに出る。
    • どちらも去年と同じマシンなのかな。来年はぜひ新筐体で。DDRにセツナトリップが入ってないというツイートも見かけましたので、ぜひよろしく。
  • にぎり鮨を5分で流しこむ。 全く味わっていない。
    • でもまあ、太鼓とDDRをやりに行ったからこそ主食締め切りに気づきました。告知が遅かった印象。もし食事を得られていなかったらと思うと悪寒が。
  • スタンプ8: LayCurse氏トークライブ。ネタ帳大事ですね。あと、細かいポイントのくだり、全部飛ばされたので、Advent Calendar参加を増やすかどうか怪しいです。現状判断できかねますので、スライド公開お願いします。
  • コード川柳、できたので投稿。「RE テストケースを 推測だ」今思えば「コーナーケース」のほうが良かったかもしれないが、まあ、表彰とか考えてませんので、これでよし。ちなみに会期中ハッシュタグ検索使ってません。
  • スタンプ9: 書道コーディング。(※1)をこちらに消費することに決定(プログラミングあるあるとは少し違うというのもあり)。「回線が 落ちてつらみの Festival」だってFestivalって楽しむものよね??
  • スタンプ10/11: コード川柳・短縮王のスタンプをもらう。ステッカーとバッジをもらう。
  • スタンプ12: エキシビション観戦。
  • 生春巻き・ソースやきそば・おでんを自分の席で食す。 味わえた。
  • エキシビション、去年より難易度上がってませんか。解説聞いても解けるか怪しい。あと短縮王B、C言語版通った。
  • あさプロ難易度ボーダーが50位/150位から30位/100位に変更。Easy出るお^ω^

  • 起床フェーズがやばいことは明白だったので、今年も宿泊希望。品川プリンスホテル。
  • アミューズメントアイランドセガ、行ってみたが、22時閉店だったっぽい。戦慄を感じる。
  • 0時まで短縮王で寿命を縮める。
  • 本選D・E、想定解法で通す。 それぞれ233Bytes、115Bytes。 びっくり。
  • 本選HをC++で通す。main関数自体は18行。解説の凄さを感じた。
  • yukicoder No.302を通す。
  • 狭い湯船 に浸かり、就寝

2日目

  • 7:10起床。AC。

あさプロ

  • スタンプ13
時間 言語 問題(A-H) コメント
52秒 Ruby A Math.sqrt(n).to_i!=n TLE。今思えば最低ですが、この時は仕方がない。
0:03 Ruby B 2つに分けて、ハミング距離。 AC
0:07 Ruby A (1..100).map{e e**2}.bsearch{e e>=n}-n。頭がおかしいですが、やむをえません。 AC
0:10 Ruby C ソートして、上位K個の和が既にR*Kを越えているか、または下を1個減らしたときに足すべき値は何か。WA。焦る。
0:11 Ruby C N==1の時、reduce(:+)はnilになる。(0,:+)。WA
0:13 Ruby C N==Kの時、a[0,K]の要素数はKではなくK-1。下を1個減らす必要はない。 AC
0:20あたり C D lcsを試すも、サンプルが通らない。スコア計算関数を修正。まだ通らない。切断位置はN/2である必要はないのか。じゃあB問題と違ってN%2の場合分けも要らないな。
0:32 C D AC Easy順位確定。7位。
1:08 Ruby E 左右に分けて、sum((i+1)*a[i]+1 for i in range(N))。サンプル合わず。
1:15 Ruby G 各数字の前で切ってソートすればいいんじゃね->… 1 2 9 3 …で他の部分を切ってしまい2と9を切らない。間違えました、はい。ソース破棄。
1:21 Ruby F 高さでソートして貪欲。O(K)。TLE。ちなみにO(N)の答案を書いてわかりましたがこの解法は嘘解法でした。
1:30 Middleは77位。3問解きたかったね。仕方ないね。
  • スタンプ14: 入賞。タンブラー先着順に関してしか利益がないので、うーむ。

  • あさプロE 左右にわけられるのは白石の場所のみ。サンプルは通った。しかしTLE。
  • 今半すき焼き弁当。 味わえました。
  • スタンプ15: chokudai氏トークライブ。そんなにアルゴリズムぽんぽん出てきませんToT
  • タンブラー引き換え。 よかった´ω`
  • shinh氏トークライブ。私のコード紹介ありがとうございます。詰めが甘くてすみません。
  • なんか係の人が忙しそうだったのでスタンプはいいやと。
    • ただ、本当は、こういうことを思わせた時点でアウトではある。

早解きリレー

  • ゼッケン、去年はアルファベットだけど、今年整数だ。問題番号なのか解く順番なのかわからないっす。
  • 順位順で、普通にEを担当。実装は2問目。
  • 最初、すぐに反転させれば良いと勘違いしてWA。「解けそうだ」とか言ってすみません。h<=6やm<=30のときは待ってから反転させることで0にできますね。AC。途中で戻らずにすみました。
  • ちなみに解いた順番の関係でEはFAらしい。
  • 他は見てるだけになってしまった感が。申し訳ない…

ハッピーアワー

  • 本来の趣旨から少し外れ、コンテンツ表彰の前の短い歓談時間的扱いになった気がしますが、仕方ないかなと。
  • 短縮王は、総合2位、しかたないねToT
  • コード川柳、kyudenamida氏、「もっと真面目な川柳にいいねするべき」とのことでしたが、Twitterの性質上やむを得ないのかも。

帰路

  • 電車の中であさプロE AC。sum((i+1)*a[i]+1 for i in range(N))は2段階の和で表せるので、DP可能。
  • リレーの問題、通して見ましたが、CとかDとかFとか本番中に解ける気がしない。G・Hなら解けるけど。てかこの問題セットだと思考停止状態で解けるのはB・G・Hだけですわ。Eも考察が必要ですが少しだけなので。E担当でよかった´ω`

まとめ

  • 1日目夕方を見れば分かる通り、とてつもなくタイトでした。食事を味わえなかったのも残念。
  • トークライブ途中退室を推奨しているかのような印象をあたえてしまう恐れ、有ったのでは。21 Completeとか。無茶でしょ
  • 太鼓の達人・DDRは来年こそ新筐体で。あー、まあ、需要過多になる危険があるか…

  • それはそれとして、全体としては、濃い2日間で楽しめました。ありがとうございました。

お土産

  • https://twitter.com/cielavenir/status/665833405490139136
  • パーカー
  • 本選Tシャツ、リレーTシャツ(カーネーション?)
  • あさプロタオル
  • トートバッグ
    • 今回、手提げショルダー両用なので、かなりありがたいです。
  • リストバンド、ボールペン、メモパッド、ステッカー、缶バッジ、タンブラー

追記(151116)

  • ショートコーディングOzy本、電子版が良いけどKindleは専用アプリが必要なのでちょっと、という人はこれを買いましょう。pdfなのでデバイスに依らず閲覧できますよ。
  • http://tatsu-zine.com/books/short-cording