Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

いじれるセグ木

いじれるセグ木 うえすぎさん(@takeda_SE)のおかげで公開できました。感謝します。 競プロerなら一度は憧れるフレーズ「セグ木で殴る」 憧れ続けてはや1年、機運が高まってきたので 作ってみました、視覚的に理解できるセグ木。

操作方法

初期化

  • type: セグ木に載せたい機能を選択します。xorとかgcdも作る予定があります。
  • n: 配列の要素数です。32を越えると見づらくなり、65以上だと何が起きているかわからなくなるため、それなりの数字をお薦めしています。
  • A: 配列の要素をスペースで区切って入力してください。私はデバッグの際、いちいち配列を考えるのが面倒になりました。ですので、random fillボタンを押すと1〜9の数字で要素数nの配列を生成します。 上記を埋めた後、initializeボタンを押すとセグ木が生成されます。

クエリ1

[l, r)の区間に対し以下の処理を行います。 typeによって行う処理が異なります。

  • sum: 区間和を求めます。単位元は0です。
  • mul: 区間積を求めます。単位元は1です。
  • min: 区間内の最小値を求めます。単位元は♾です。
  • max: 区間内の最大値を求めます。単位元は-♾です。 処理に参加したセルが青く塗られます。 今後、もう少しわかりやすく動くようにしたいです。

クエリ2(update)

i(1-indexed)番目の値をxに更新します。 更新されたセルが青く塗られます。

このセグ木はえびちゃんさんのスライドを参考にして作られました。本当に助かりました。ありがとうございます。 https://rsk0315.hatenablog.com/entry/2020/07/05/184929

About

play with segment tree

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages