Cover Image for [Boot camp for Beginners] B - Good Distance [Rust]

[Boot camp for Beginners] B - Good Distance [Rust]

概要

AtCoder Problems: Boot camp for Beginners をRustで解いてみる

学んだことmemo

  • 組み合わせ問題
  • N10N\le10 なので最大で 10!/2!(102)!=4510! / 2!(10-2)! = 45 通り
    • このぐらいだったら実直に計算しても計算量が爆発することはなさそう
    • (この感覚を計算しないでさっと得たい)
  • 2点間の距離を求める部分
  • 組み合わせを作る部分
    • 普通にiterで回して、元の配列と組み合わせていくと重複が起きる
    • enumerate で添え字も見ていって、現在見てる添え字までは元の配列をスキップする必要がある
      • iter.skip() を使うとskipしたiterを生成できるので楽
  • 距離が整数かどうか判定
    • float型は fract() で少数部分のみ取れるので、それが0かどうかを見ればいい
  • 最終的に整数のものだけにfilterしてcountすればOK

参考