python ABC308感想戦 コンテスト A問題 感想 3回バグらせて、割とすぐにACできた。 DFS,BFSの亜種。 した。 最終のバグコード。 bを前回値として、単調増加の検査をしようと思ったが、bの値を検査できていないことに気づき、条件式をコピペしてきた。なんとも... 2023.07.02 pythonプログラミング
rust rustで優先度付きキューを使いたい時、BtreeMapも検討してみようというお話 通常、rustで優先度付きキューを使うならBinaryHeapだとgoogle先生もchatGPT先生も言っています。 しかし、特定の用途に関してはBtreeMapを使うことになると思います。 AtCoderで問題を解いていた時に、この用途... 2023.04.23 rustプログラミング
rust 【rust】AtCoderで作成できる配列の要素数を調べてみた 配列の数を調べたくなった動機 以下の問題を解いていた時でした。 詳細は割愛しますが、 「2*10^5× Nの二次元配列を作成して解いたらいいよね」と思って実装しました。サンプルのテストケースは通りました。 意気揚々と提出すると、そこにはみる... 2023.04.16 rustプログラミング
rust 【rust】AtCoderで使う二次元ndarrayの作り方 モチベーション 使えれば便利そうなndarrayクレートですが、二次元のVecをndarrayにする方法が調べてもよくわからなかったので、記事にしました。 AtCoderをやっていると入力の受け取りにproconioを使うと思います。pro... 2023.04.06 rustプログラミング
rust rustのクロージャを理解する クロージャをひとことで 周りの環境の変数をキャプチャ出来る関数 周り環境の変数とは? 周りの環境の変数と書きましたが、その場所から普通にアクセスできる変数のことです。以下の例のように同じスコープ内にある変数bをクロージャを使ってキャプチャで... 2023.03.27 rustプログラミング
rust rustのユニットについて理解する ユニットをひとことで 「特に何もない」を表現する記号 ユニットを返す関数 ユニットを返す関数を書いてみます。 fn hello() -> () { println!("hello"); } fn main() { hello(); } $ ... 2023.03.14 rustプログラミング
rust トレイトオブジェクトについて理解する トレイトオブジェクトをひとことで あるトレイトを実装した型のインスタンスを指すもの トレイトオブジェクトを図示してみる 例えば、「Drinkable(飲める)」という特性を持った(トレイトを実装した)インスタンスを考えてみます。これを図示し... 2023.03.09 rustプログラミング
rust rustのBoxについて理解する Boxをひとことで 値をヒープ領域に置く Boxの仕組み Boxの仕組みを理解するために、以下のようなコードを書いてみます。 fn main() { let a = Box::new(10); let b = 10; println!("{... 2023.03.05 rustプログラミング
rust rustを使ってAtCoder茶色になりました! この記事について AtCoderでは色が変わると記事を書くことが許されるということで、いわゆる色変記事を書きます!「rustを使って」と書いていますが、実際にrustを使ったのは直近6回です。6回も使っていれば「rustを使って」と書いても... 2023.03.02 rustプログラミング
rust 【rust】スマートポインタってなに? スマートポインタを一言で 値へのアドレスとメタデータを持ち、その値の所有権を持つもの。 スマートポインタの代表例 Vec<T> String スマートポインタとして見るVec<T> Vec<T>は代表的なスマートポインタです。以下のようなポ... 2023.02.23 rustプログラミング