题目描述:
输入描述:
输出描述:
样例及提示:
思路:这题是一个线段树加开方问题,有两种操作:
1.查询区间和(区间查询),需要用到sum, sum = lson.sum + rson.sum
2.将一段区间的所有值开根号 (区间修改)会先想到懒标记,但是这题无法通过修改大区间的值直接得到答案,sqrt(a) + sqrt(b) != sqrt(a + b),所以只能进行单点更新:
(1). 0,1无论怎么开放都是本身,任何正整数无限开放后必定为1
所以我们可以通过转换为最大值来保存,如果最大值为0 || 1,就不需要更新到叶子节点了(转换为单点更新)