Upgrade to Pro — share decks privately, control downloads, hide ads and more …

競プロライブラリ紹介

 競プロライブラリ紹介

2022/3月に行われた全国学生エンジニア交流会での発表資料です

イベントページはこちら
https://zli.connpass.com/event/239501/

matumoto

March 12, 2022
Tweet

More Decks by matumoto

Other Decks in Technology

Transcript

  1. 自己紹介 • HN:matumoto • 学部 2 年(新3年) • 所属:Zli、競技プログラミング、企画開発部 •

    趣味:漫画、YouTube、競技プログラミング • AtCoder:水 • GitHub:matumoto1234 • Twitter:@matumoto_1234
  2. dynamic_imos • imos 法の範囲が大きくなったバージョン • 1 <= value <= 1e9

    https://github.com/matumoto1234/library/blob/main/data-structure/dynamic-imos.hpp
  3. imos 法とは? 0 1 2 1 ~ 6 5 ~

    10 12 ~ 17 2 ~ 12 3 4 5 6 7 8 9 10 11 12 13 14 17 15 16 区間の重なりを知りたい!
  4. 区間の重なり 0 1 2 1 ~ 6 5 ~ 10

    12 ~ 16 2 ~ 12 3 4 5 6 7 8 9 10 11 12 13 14 17 15 16 5 には 3 つの区間が重なってる 11 には 1 つの区間が重なってる => 区間の長さ × 区間の長さに比例してしまう
  5. 区間の重なり 0 1 2 +1 3 4 5 6 7

    8 9 10 11 12 13 14 17 15 16 -1 +1 -1 +1 -1 +1 -1
  6. 区間の重なり 0 1 2 +1 3 4 5 6 7

    8 9 10 11 12 13 14 17 15 16 -1 +1 -1 +1 -1 +1 -1 区間の長さ + 区間の数にはなった!
  7. shortest-hamiltonian-path • 使わない! • 実は shortest-hamiltonian-cycle もある • どっちを使えばいいか悩んでしまう •

    使用用途がかなり限定的になっている https://github.com/matumoto1234/library/blob/main/graph/shortest-hamiltonian-path.hpp
  8. sliced • python のスライスがほしかった • array[l:r] で [l, r) の配列がほしい

    • sliced(array, l, r) で行う https://github.com/matumoto1234/library/blob/main/tools/sliced.hpp