yokoyama-midoriのblog

Ankiのエスペラント/英語の共用デッキをエスペラント/日本語にカスタマイズする

はじめに esperanto.cardsやankiweb上の共用デッキにてEsperanto cards (for English speakers)というデッキが公開されています。これはAnkiというアプリで使える英語話者用のエスペラントの単語帳なんですが、2500語収録されており(EO→ENとEN→EOで5000枚)音声や例文等も充実していて結構作り込まれているようです。このデッキを日本...

Cコンパイラを作る

Rui Ueyamaさんの『低レイヤを知りたい人のためのCコンパイラ作成入門』と『chibicc』のリファレンス実装を読みながらCコンパイラをCで作っていきます。セルフホストできるところまで進めるのが当面の目標です。日記形式で書いていきます。 9/2 ~ 9/10 「ステップ14: 関数の呼び出しに対応する」まで進めた。 9/11 Commit aedbf56 では関数呼び出しの際RS...

今月読んだ本

ハケンアニメ! 辻村 深月 面白かった 火星に住むつもりかい? 伊坂 幸太郎 世界観に引き込まれる。ストーリーも面白い。 マイクロスパイ・アンサンブル 伊坂幸太郎 「現代版おとぎ話」というキャッチコピーらしい。すごい面白いという感じではなかったけどあんまり読んだこと感じで不思議な感覚だった。 夜のピクニック 恩田 陸 高校の行事でほぼ丸一日歩く話。いい話だったけど、自分なら嫌だなぁ ...

マージ過程を表す木

マージ過程を表す木を用いる典型テクを学んだので紹介する。 マージ過程を表す木とは 頂点$0,\dots,N-1$からなる$N$頂点$0$辺のグラフについて、指定された頂点のペアに辺を貼り連結成分をマージしていく操作を考える。各時点での連結成分に関するなんらかの値を求めたい場合や、ある頂点のペアが初めて連結になった時点での何らかの情報を得たい場合マージ過程を表す木が役に立つ可能性がある。マージ...

yukicoder No.416 旅行会社

問題概要 $N$頂点$M$辺のグラフが与えられる。辺の削除が$Q$回行われる。頂点$2,\dots,N$について頂点$1$と非連結になったタイミングを答えよ。 解法 後ろから考えれば辺の追加を行っていき、頂点$1$と連結になったタイミングを答える問題に帰着できる。これは他の解説通りマージテクにより可能で、時間計算量$\Theta(N \log N)$になる。しかし素集合の要素の列挙と併合を...