[Boot camp for Beginners] B - Good Distance [Rust]
概要
AtCoder Problems: Boot camp for Beginners をRustで解いてみる
学んだことmemo
- 組み合わせ問題
- なので最大で 通り
- このぐらいだったら実直に計算しても計算量が爆発することはなさそう
- (この感覚を計算しないでさっと得たい)
- 2点間の距離を求める部分
vec
を2つ引数にとってzip
したあと計算すればいけそう- 絶対値は
abs()
、2乗はpow(2)
、平方根はsqrt()
使う - この辺り忘れそうなので、よく使うやつをまとめた post を作った → 【Rust】競技プログラミングでよく使うものまとめ
- 組み合わせを作る部分
- 普通にiterで回して、元の配列と組み合わせていくと重複が起きる
enumerate
で添え字も見ていって、現在見てる添え字までは元の配列をスキップする必要があるiter.skip()
を使うとskipしたiterを生成できるので楽
- 距離が整数かどうか判定
- float型は
fract()
で少数部分のみ取れるので、それが0かどうかを見ればいい
- float型は
- 最終的に整数のものだけにfilterしてcountすればOK
参考
[Boot camp for Beginners] B - Good Distance [Rust]