From 9a819e58b8a20983a62382fc60e820a2a2ca9c86 Mon Sep 17 00:00:00 2001 From: Lorent Date: Tue, 2 Feb 2021 23:31:12 +0900 Subject: [PATCH 1/2] remove unnecessary calculation --- atcoder/lazysegtree.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/atcoder/lazysegtree.hpp b/atcoder/lazysegtree.hpp index 066e148..ae56e0f 100644 --- a/atcoder/lazysegtree.hpp +++ b/atcoder/lazysegtree.hpp @@ -88,7 +88,7 @@ struct lazy_segtree { for (int i = log; i >= 1; i--) { if (((l >> i) << i) != l) push(l >> i); - if (((r >> i) << i) != r) push((r - 1) >> i); + if (((r >> i) << i) != r) push(r >> i); } { @@ -105,7 +105,7 @@ struct lazy_segtree { for (int i = 1; i <= log; i++) { if (((l >> i) << i) != l) update(l >> i); - if (((r >> i) << i) != r) update((r - 1) >> i); + if (((r >> i) << i) != r) update(r >> i); } } From 802bfa042751809e3714938413ef30f01710794b Mon Sep 17 00:00:00 2001 From: Lorent Date: Thu, 4 Feb 2021 23:22:28 +0900 Subject: [PATCH 2/2] unify how to write the same operation --- atcoder/lazysegtree.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/atcoder/lazysegtree.hpp b/atcoder/lazysegtree.hpp index ae56e0f..f4c5e4f 100644 --- a/atcoder/lazysegtree.hpp +++ b/atcoder/lazysegtree.hpp @@ -56,7 +56,7 @@ struct lazy_segtree { for (int i = log; i >= 1; i--) { if (((l >> i) << i) != l) push(l >> i); - if (((r >> i) << i) != r) push(r >> i); + if (((r >> i) << i) != r) push((r - 1) >> i); } S sml = e(), smr = e(); @@ -88,7 +88,7 @@ struct lazy_segtree { for (int i = log; i >= 1; i--) { if (((l >> i) << i) != l) push(l >> i); - if (((r >> i) << i) != r) push(r >> i); + if (((r >> i) << i) != r) push((r - 1) >> i); } { @@ -105,7 +105,7 @@ struct lazy_segtree { for (int i = 1; i <= log; i++) { if (((l >> i) << i) != l) update(l >> i); - if (((r >> i) << i) != r) update(r >> i); + if (((r >> i) << i) != r) update((r - 1) >> i); } }