2022/03/21
16時ごろに起きる。
余っていたパンをむしゃむしゃ。うまい
YouTubeを観るのも飽きてきたので、PCをいじっていると友人から突発的にビデオ通話が飛んできた。無音だったのでなんだと思っていると、友人の飼い猫が寛いでいる様子が映され始めて、猫を一方的に見せるビデオ通話が突如開始。🐈🐱
20分くらい猫を眺めた後、このまま友人と新シーズンに突入したFortniteをプレイ。どんなストーリーかと思っていたら、「敵(?)が攻めてきたぞ!妨害によって建築が出来なくなってしまった!代わりにアクロバットな動き(ほぼ二段ジャンプ・ダッシュのブースト)でなんとかしろ!」とかそんな感じで、建築が出来なくなってしまった(Fortniteの意味とは?)。
マップをうろついていると、道にバリケードが設置してあったり、町にでかい気球と戦車がいたり…なんだか物騒だな。マップの変化はそれしか見ていないので、半分以上見落としていそう。
昔使いまくっていたサーマルスコープ付きアサルトライフルが復活していた。Foo↑索敵が捗るぜ(倒せるかは別の話)。ドラムショットガンは扱いが難しい…
Brainfuckの処理系をいじる。パースした結果を表現する構造体を作り直したくなったので、いろいろ練り練りする。結局、
enum AST { Plus, Sub, … Loop(LinkedList<AST>) }
という感じにしてみた。VecじゃなくてLinkedListにしているのは、最適化をする際に、コード列を切って間に挟むという処理が頻出する(はず)なので、VecよりはLinkedListが良くない?という気持ちになったから。
後々Vecの方が良かったじゃねえか!!!となるかもしれないけど、まあ趣味でやっている物なのでヨシ!
命令を合体する最適化を書く。+++----
を-
に変換するような処理。上に揚げた例のようなコードだと圧倒的最適化💪💪💪してくれるけど、実際のコードでの効果は謎…
試しにちょっとした最適化を書いてみると、LinkedList特有の処理がちょっと出てきたけど、そんなに書き心地は変わらないかな…?若干、マクロを書きたくなるような処理があるけど、それはまた今度…
2022/03/22
16時ごろに起きる。
適当に米を食べたけど、なんか物足りなかったのでインスタントうどんを追加。うめ~
食事の後は、PCをいじいじ。自作のBrainfuckの処理系をいじったり、TwitterでRustのスペースを聴いたりした。
春休みイヤッホー!という事で調子に乗った生活をしているけど、流石に改善しないとまずい気がしてきた。
2022/03/23
15時ごろに起きる。
16時に現地に着いていないといけない用事があるのに、こんな時間に起きてしまった…
駅で改札を通ろうとICOCAを当てると、残高が3円しか無くて通れず。こんな事もあろうかと1000円札を用意していたので事なきを得た。
雨が降っているのに、中途半端な丈のズボンを履いてきてしまったのでクッソ寒い。暖かくあれ
帰り際にファミリーマートに寄る。「うまいクリームパンができたぜ!」という貼り紙を見つけたので、パンコーナーを物色して探してみたけど、売り切れていて買えず(残念)。結局、いつも通りファミチキを買って帰った。
友人とFortniteをやっていると、戦車を見つけた。砲撃と機関銃を乱射する事ができて、敵がいる建物に突っ込んだりしてた。うっひょ〜〜!!
ふとウンコをして、拭いたものを確認すると鮮血で染まっていてたまげた。めっちゃ強く拭いている訳でも無いので、なんかヤバそう。謎
2022/03/24
16時ごろに起きる。
起きてからはしばらく布団でモゾモゾ。YouTubeを見たりTwitterを眺めたり。
1時間くらい経って、何か食おうという気持ちになったので、食パンを焼いて食べた🍞。いい感じのピーナッツバターを入手したので、それを塗りたくるとヤバい(ヤバい)。
Brainfuckの処理系をいじる。C言語に変換する機能があるので、それを使って最適化の効果を眺めてみる。clangを使ってLLVM IRを出力できるので、LLVMと処理系両方の最適化が入っているIRと、LLVMの最適化のみのIRを見比べてみると、どっちも殆ど同じように見えた。
処理系での最適化がよく分からなくなる程LLVMが賢いという事で、すごいな〜という気持ちに
2022/03/25
8時ごろに起きる。
なんかいや〜な感じで目が覚めた。ゲップが出そうだけど出ない感じが続いて、若干調子が悪い。
理由はともかく、朝に起きる事ができたので久しぶりの朝食。昨日の昼食と同じ、トーストにピーナッツバターを塗り塗りしたやつ。コーヒー牛乳を作ろうと思ったけど、牛乳が切れていて作れず。ぐぬぬ…
腹ごしらえをしたけど、やっぱり調子が悪いのでベットでゴロゴロ。猫の動画を見たりしていると、そのまま寝落ちしてしまう…
起きると20時くらい…?(覚えていない)豚肉の塊を入手したので、蒸し器にぶち込んでみると、うまい肉の塊が錬成できた。やったぜ。
21時くらいに食べ終わると、テレビでやっていた塔の上のラプンツェルを眺める。やっぱり面白いわね。金曜ロードショーありがたい
映画が終わったら暇になったので、PCをいじいじ。Brainfuckの処理系に新しい最適化を追加してみたり、ベンチマークをとったり。
ptr += 1; *ptr += 5;
を
*(ptr-1) += 5;
に変換する感じ。
2022/03/26
16時ごろに起きる。
AHCに出ようと思っていたけど、1時間遅刻した上に用事が入ってしまい、最低限生の得点を取る解を作るのにも時間がかかりそうなので今回は参加しないことに…
炊飯器にブロッコリーをぶち込んで、米と一緒に炊いたものを食べる。ブロッコリーってこんなに柔らかくなるのね。炊飯器すげ〜(うまい)。この後外食に行くので、そんなに量は食べず。
しばらく経ってびっくりドンキーへ。メニュー表からNEW!が無くなる位行っていなかったので、何が新しいものなのかが分からない。
ハンバーグ系がちょっと増えていて、フォンデュ風チーズバーグディッシュが気になったのでそれを注文。やべー見た目してる。あと、さくさくイカ唐揚げも注文。
イカうめ〜〜。無限に食える。フォンデュ風チーズはどんな感じか予想がついていなかったけど、これもうまい。よき
なんだかんだで8時ごろに帰宅。ABCまでゴロゴロしていた。
AtCoder Beginner Contest 245に出る。ABCの3完で、ペナルティがなんと6つ。順位は9825人中4152位。ぐぬぬ…
A問題
一番難しい。脊髄反射で
if si <= ti and sj <= tj: print("Takahashi") else: print("Aoki")
を提出してWA。
例えば、高橋くんが1時1分、青木くんが2時0分に寝る場合を考慮していないコードになっている…後から考えたら簡単だけど、いまいちよく分からず妙な微変更を繰り返して3ペナに…
これくらいの簡単な問題だったら、自分でコーナーケースを考えるなりした方が良いのだけど、焦ってしまいできなかった…
B問題
入力をsetで受け取って、0から2000まで順番に含まれているかを確認する。含まれていなかったらそれを出力してそのまま終了。
n = int(input()) a = set(map(int, input().split())) for i in range(2001): if i not in a: print(i) break
C問題
C問題のCはDPのCなので、適当にDPを書いて提出してみたもののWA。びっくりして、提出したコードを睨んでみるとバグを発見。修正して再提出してみたものの、再度WA。
まだバグがあるか、方針が違うかのどちらかだけど、実装への謎の自信から方針を変えてしまう。謎のループを提出してみたものの、WA。
ここで冷静になってDP解のコードをもう一度睨んでみると、バグを発見。番兵として-1を置いていたけど、これを確認しないまま使ってしまっていた…。これを修正するとAC。ぐぬぬ…
再発防止策としては、番兵の代わりにNone
を使ったら、どうようのけーはVSCodeのlinterが怒ってくれるはずなので、今後はそうしたいわね(覚えていたら)。
WA1 atcoder.jp WA2 atcoder.jp WA3 atcoder.jp AC atcoder.jp
2022/03/27
18時ごろに起きる。16時の時計を見た記憶があるのだけど、そのあと二度寝したぽい。
とりあえず何か食うかという事で、テーブルに転がっていたクリームパンを一つ。
夕食を食べ終わって、ちょっと掃除をしたり。やる気を出して掃除機をぶん回し始めて5分くらいで、掃除機の充電が無くなってしまった…。
こういう時に、充電済みの電池に付け替えて掃除を続行できたら便利だと思うけど、残念ながらこの掃除機にそういう機能は無い…
掃除を断念して、妖怪PCいじいじに。友人からFortniteの誘いが来たのでプレイしていた。相変わらず戦車が強くて、友人氏と自分での戦車2両で敵に突っ込んだり、建物を破壊したり。
適当にやっていると24時になったので終了。しばらくTwitterを徘徊して寝る(予定)。