Quiz
https://atcoder.jp/contests/dp/tasks/dp_w
解説AC
https://atcoder.jp/contests/dp/submissions/8814646
感想
- 論理はemtubasaさんの解説を参考
- 遅延セグ木はふるやんさんのを借りてきた
- いくつかパターンが書かれているから再利用しやすそう
/* 区間更新・区間和 auto operation = [](ll a, ll b) { return a + b; }; auto adapt_lazy = [](ll a, ll b) { return b; }; auto merge_lazy = [](ll a, ll b) { return b; }; auto multiply_lazy = [](ll a, int n) { return a * n; }; 区間加算・区間和 auto operation = [](ll a, ll b) { return a + b; }; auto adapt_lazy = [](ll a, ll b) { return a + b; }; auto merge_lazy = [](ll a, ll b) { return a + b; }; auto multiply_lazy = [](ll a, int n) { return a * n; }; 区間更新・区間最小 auto operation = [](ll a, ll b) { return min(a, b); }; auto adapt_lazy = [](ll a, ll b) { return b; }; auto merge_lazy = [](ll a, ll b) { return b; }; auto multiply_lazy = [](ll a, int n) { return a; }; 区間加算・区間最小 auto operation = [](ll a, ll b) { return min(a, b); }; auto adapt_lazy = [](ll a, ll b) { return a + b; }; auto merge_lazy = [](ll a, ll b) { return a + b; }; auto multiply_lazy = [](ll a, int n) { return a; }; */
- 範囲Maxセグ木を見つけてきても遅延セグ木じゃない(範囲加算できない)ものだったりして、探すにも時間がかかった
- コンテスト中に探すのは避けたい
- 今回のように1度ACしておくと安心して使える
- 難易度は、水色の自分には少し早かったか