金魚亭日常

読書,ガジェット,競技プログラミング

Rust

brew upgrade したら cargo build が失敗するようになったので直した

初期症状 > cargo build --verbose ... = note: collect2: fatal error: ld terminated with signal 11 [Segmentation fault] compilation terminated. error: aborting due to previous error error: could not compile `syn`. ld がおかしいらしい。確かに…

C++ の map は 二分木らしい

C++ の map は 二分木らしい。 ABC277 D の解説をRust に移植していて、変な結果になって、調べてみて気づいた。 BTreeMap を使うと、期待した結果になった。 ちゃんと理解してから実装しよう、ということだった。

rust-analyzer に移行した

ふと拡張一覧を眺めていると、このRust拡張は更新を停止したのでrust-analyzerに移ってね、みたいな表示が出ていて、移行してみたら結構大変だった。 要点 rust-src がない: 最近のrustだと場所が変わっているのでsynbolic link で対応した VSCode で開くとW…

Rust 出力フォーマット

数字を0埋めで出力 atcoder.jp

Rust で multiset

ABC253 C - Max - Min Query で、解説を見たら、 例えば c++ なら std::multiset を用いることにより高速に処理できます とか言われて、??? となったので、調べた。 multiset とは cpprefjp.github.io 日本語だと、多重集合。 問題文にも書いてあった。 R…

Rust の Struct で mutable な field

Rubyのインスタンス変数的なやつをやりたかった。 use std::cell::Cell; struct S { n: usize, cnt: Cell<i64>, } impl S { fn f(&self) { for _ in 0..self.n { self.cnt.set(self.cnt.get() + 1); } } } fn main() { let s = S { n: 10, cnt: Cell::new(0), }; </i64>…

Rust でインタラクティブ問題やるとき

TLEになるので、入力に気をつけよう。 これとか。 atcoder.jp use proconio::input; use proconio::source::line::LineSource; use std::io::{stdin, BufReader}; fn main() { let stdin = stdin(); let mut source = LineSource::new(BufReader::new(stdin.…

Weathernews Programming Competition (その 3)

次はハフマン符号してみた. かなり書くのが厳しかったが,とりあえず AC で,得点は 1692167.64 . 最下位脱出して 38 位. ハフマン符号 ver.(Rust)

Weathernews Programming Competition (その 2)

とりあえず Python でハフマン符号してみたら,速度的に無理そうだったので,Rust に移植することに. とりあえず,自明解を提出. 実行するときは --release を付けないと結構厳しい. 書き出すときは,数値は u8 にする必要があるので,自前で頑張っている…

AtCoder ABC #075 D - Axis-Parallel Rectangle

最初,ユークリッド距離で近い順にK点選んで長方形を作る,ってやっていたけど,だめだった. x座標とy座標それぞれソートしてから長方形を全部作り,K点以上含まれるかどうか判定する. で,Ruby で書くとTLEだったので Rust. AtCoder ABC #075 D - Axis-P…

AtCoder ABC #022 C - Blue Bird

C: Blue Bird - AtCoder Beginner Contest 022 | AtCoder 1 から出て 1 に戻る道を考えるが,まず,1に隣接している点から出て別の隣接している点に戻る道を考える. 1を除いたグラフについてワーシャルフロイドで全組み合わせの最短距離を求めておく. 1に…

AtCoder ARC #083 / ABC #074 D Restoring Road Network

AtCoder ABC #074 / ARC #083

AtCoder ABC #070 C Multiple Clocks

AtCoder ABC #070 C

AtCoder ARC #080 E Young Maids [Rust]

勉強のために Rust にも移植. 150 ms. 慣れていなくて全然コンパイルが通らないんだけど,エラーメッセージに従ってなおして行くと通るようになって楽しい,みたいな感じになってくる. ここは mut でしょ,って書いてたら mut じゃなくてよくね,って言わ…

Rust で競プロ: 標準入力読み込み

まだ何がベストかわからないのだけど,とりあえず現状は, N M みたいに整数のペアが空白区切りで与えられた場合, use std::io; use std::str::FromStr; fn main() { let stdin = io::stdin(); let mut buf = String::new(); stdin.read_line(&mut buf).ok(…