Sun Jul 25 2021

ここ3年で観て良かった映画

見た映画の記録をつけるみたいなことをしてこなかったが 2017 年頃から filmarks に記録してる. 良かった映画を列挙する.

私が思う良いというのは, 話が極端であること, 観て一年経ってもはっきり記憶に残っているもののこと. 極端というのはどうせ人が戦う話なら出来るだけ多くが死んだ方がいいし, 中途半端に記憶に残らないストーリーならいっそ画作りに極振りしてストーリーが無いほうが良いということ. また, よく出来た映画は大抵見た直後には感動するものだが, 一年経っても時々ふっと思い出す映画だけが, 真に観たと言える映画だと思う.

ナポレオン・ダイナマイト

私が見た時にはまだ邦題が「バス男」だった. 陰キャオタクが少しだけ努力する話. 主人公には本当の意味で何もない. オタクだからといって例えばギーク趣味では才能があるだとかそんなものも何もない. 友達はようやく一人二人いる程度. 映画の中で成し得る達成と言えるものも, ようやく人前でダンスを披露する程度. 現実はこのくらいのドラマで十分だ.

ストーリーも地味絵面も基本的には地味なんだが, ダンスシーンが強烈すぎる.

トレインスポッティング

続編の 2 も良かったね. もちろん主人公も自業自得なんだが, 友人関係や環境がそうだと地獄から抜け出せない絶望を見せつけられる.

トリップした精神状態の映像化がきれい.

帰ってきたヒトラー

現代に復活したヒトラーが初めはもちろん奇人として描かれるが, ヒトラーの視点を通すと徐々に観客は, ヒトラーが真人間かのように見えてくるから恐ろしい. 後半でちゃんと, ヒトラー礼賛映画ではない描写があるので安心だね.

一番のラストを見て, ちゃんと我に返って欲しい.

麻雀放浪記2020

安い安い映画だし, 「麻雀放浪記」という偉大な原案を元にしているが, それでも, その範囲を逸脱してSFをやっているのが好きだ. 原作を読み込み愛した上での原作レイプはお金を払って見る価値がある映画だ (原作を忠実に映像化して音をつけただけのものを誰が褒めるんだろうか).

勝負しねえで生きる奴に出来ることはな、長生きだけだ

サタンタンゴ

2019年末, 吉祥寺のパルコで一日限定で上映されると聞いて見てきた. これは映画というより映像作品だし, 体験だと思う. 現実に「カット」はない.

花とアリス殺人事件

アニメの方. いわゆる日常の謎ジャンル. そして本物の百合とはこういうものを言う. 音楽がきれいだね.

ラブ&ポップ

いかにも90年代東京といったお話. 大抵の人間には非日常な出来事だが, 当事者たちには日常で些細な出来事なんだろうといった, そういう意味では何も起きないお話. 監督が庵野なだけあって, 嫌でも目がちらつくカメラワークが重々しく見える. が何も起きないのが面白いね.

地獄でなぜ悪い

まずコメディとして面白い. 喜劇として, 血が沢山ながれて人がたくさん死ぬので楽しい. 同時に質の低い自主制作映画批判になっているのが楽しい.

秋刀魚の味

戦後の空気を味わうための映画. 敗戦して, 返って清々しくなれた庶民たちの話.

「お葬式ですか」「ま、そんなものだよ」

うる星やつら2 ビューティフル・ドリーマー

教養アニメ. 全員見ろ. 1984年に全てのエッセンスがすでに押井守によって具現化されていることに驚く. これを見た後に他のアニメを見るとなんでも「ビューティフル・ドリーマーのパクリじゃないか」と思ってしまう.

好きな人を好きでいる為に、その人から自由でいたいのさ

吉原炎上

まだ国に吉原遊廓が唯一認められていた時代に, ヒロインが娼婦として働き始めるところから始まるお話. 初め, 警察によって簡単に吉原について説明がなされ, 許可なしに外に出られないといったルールが挙げられる. そこで分かることだが, これは現代でいう異世界ものである. 主人公が突然今までの常識が通用しない世界に放り出されるところから物語は始まる. 残念ながら前世の知識を使って無双したりはしないが.

ループで深さ優先探索

状態空間の探索を考える.

\(S_0\) から始めて \(\sigma\) によって到達可能な全ての状態を, 順次列挙することを考える. 実際にはこれによってDPをしたり, 所望の状態を探索したりするわけだが. そして, 深さ優先探索 (以下DFS) は, \(\sigma\) を適用できる限り適用する(深さ優先)ような順序で列挙する.

これは再帰関数を用いた次の擬似コードで表しやすい.

さて, 再帰関数の本質はループと何も変わらないから, ただのループを使って書き下すことが出来る. 再帰呼び出しを無遠慮に使えないような言語ではこちらのほうが便利. スタック構造を使うと上と全く同じことは次のように出来る.

ところで, ここまでは \(\sigma\) によって新しい状態にたどり着いたらその時点で何か調べることを前提にしていた. これを行きがけ順 (Pre-order) という.

これとは逆の帰りがけ順 (Post-order) が欲しいことがある. これはつまり,

これは初めの再帰関数のバージョンだととてもシンプルに記述できる.

これももちろんスタック構造を用いたループで記述できるのだが, 「調べ終わった」という状態を別個作って管理する必要がある.

という タグ付き の状態をスタックに入れることにする.

これで実装できた.

Rust で AtCoder に参戦する方法

1. 普通にブラウザで頑張る

コードの記述と実行は好きな環境(IDEとかターミナルとか)で行うとして, サンプル入力はブラウザからコピペ, 提出も web ページのフォームにコピペする.

公式が提供する方法はこれであるが, コピペの手間がある. 特にサンプル入出力を使ってテストは良い成績のために重要であるが, 3つあると3回コピペして目視で正解してるかをチェックする作業は少々大変.

2. tanakh/cargo-atcoder

次がコマンドライン上で出来る

ブラウザで表示した web ページはただ問題を見ることだけに集中し, それ以外は全てターミナルの上で操作が出来るようになる. Rust で参戦してる人には必須のツールといっていい.

3. cympfh/ac

cargo-atcoder をさらにラップしただけのスクリプトコマンド. ほんの少しだけ更に使いやすくなったつもり.

cargo-atcoder を使ってて少し苦労するのは次の点

例えば新規プロジェクトを作って A 問題を提出するまでの流れは次のようになる:

$ ac new abc200  # abc200 プロジェクトの新規作成
$ cd abc200      # abc200/ ができてるからそこで作業する
$ ac e a         # e は edit の略(全てのサブコマンドは略記可能). A 問題を解き始めた
($EDITOR で編集する)
$ ac test        # A 問題のテストが走る
$ ac su          # submit の su. A問題の提出が行われる. 最後にジャッジ結果が出力される
$ ac st          # status の st. 今までの提出結果が表示される

コンテスト中は少しでもタイピングをサボりたいので.