Rustコトハジメ

プログラミング言語Rustに関する情報をお届けします。

impl T for Box<T>パターン

GitHub - akiradeveloper/ijk: A real editor for real programmers 現在、私はエディタを開発しています。その中で知った設計パターンについて紹介します。 問題の定義 解決編 STEP1: BoxをViewにしてみる STEP2: Vに?Sizedを足す STEP3: selfをderefしてあ…

AOJのBalls and Boxesを全クリして感じたこと

前に、AOJのコースをやっていて、その理由は網羅性があって学習の効率が良いからという話をしました。組み合わせ最適化(DPL)の問題の中に、Balls and Boxesというのがあり、 https://onlinejudge.u-aizu.ac.jp/courses/library/7/DPL/5 ひたすら色々な問題設…

包除原理を応用する問題

自力で解けず、他人の解法を見て、DPを使う解法はわかったのですが、理解しがたい解法があって、むしろそっちの方がマジョリティだったので、みんなが知ってる解法だから理解する必要があると考えて、結局5時間かかりました。コードから包除原理にノーヒント…

エディタ開発を始めてRustが全くわかってないことがわかった

前回の投稿から22日間無投稿だったそうです。 とりあえず競プロ勉強を一旦休憩するために3日ほど旅行に出て、帰ったら再開するつもりだったのですが、ずっとエディタ開発をしてしまいました。 3週間ほどやってようやく報告出来る程度には成果が出たので、一…

ヒストグラムの中の最大の長方形を見つけるアルゴリズム

https://onlinejudge.u-aizu.ac.jp/courses/library/7/DPL/3/DPL_3_C ヒストグラムが与えられて、その中にある長方形の最大面積を求めるという問題は日常生活で気にすることはありませんが、競技プログラミングでは結構重要なアルゴリズムなのではないかと思…

巨大ナップザック問題の考え方

AOLのライブラリコースのうちDPLにはさまざまな種類のナップザック問題が詰め込まれており、どれもエッセンスとしては重複がないので良問と思いました。そのうち、巨大ナップザック問題の考え方を紹介します。初見では全く太刀打ち出来なかったです。 https:…

いっ・・・いもす法出たー

AOJのDSLを全部解きました。全部Rustです。 内容としては Union Find (重みつきもある) セグツリー (遅延多め) スライド 圧縮 いもす法 です。重要なトピックが詰まってると思いました。 自分としては、AOJのライブラリコースの中ではこのDSLとDPL(動的計画…