Problem Description
There is a sequence a of length n. We use ai to denote the i-th element in this sequence. You should do the following three types of operations to this sequence.
0 x y t: For every x≤i≤y, we use min(ai,t) to replace the original ai's value.
1 x y: Print the maximum value of ai that x≤i≤y.
2 x y: Print the sum of ai that x≤i≤y.
Input
The first line of the input is a single integer T, indicating the number of testcases.
The first line contains two integers n and m denoting the length of the sequence and the number of operations.
The second line contains n separated integers a1,…,an (∀1≤i≤n,0≤ai<231).
Each of the following m lines represents one operation (1≤x≤y≤n,0≤t<231).
It is guaranteed that T=100, ∑n≤1000000, ∑m≤1000000.
Output
For every operation of type 1 or 2, print one line containing the answer to the corresponding query.
Sample Input
1 5 5 1 2 3 4 5 1 1 5 2 1 5 0 3 5 3 1 1 5 2 1 5
Sample Output
5 15 3 12
Hint
Please use efficient IO method
Gorgeous Sequence HDU - 5306 (线段树)
最新推荐文章于 2020-03-07 15:20:19 发布
题目要求对一个序列进行三种操作:0型操作更新区间元素为min(t, a[i]),1型操作输出区间最大值,2型操作输出区间和。通过线段树可以高效处理这些操作,特别是0型操作,通过判断t和区间最大值的关系来避免不必要的更新。解题关键在于维护区间最大值、区间和以及最大值的个数。"
40890019,1487373,Python调用中国天气网API获取城市天气,"['Python编程', '数据获取', 'API接口']
摘要由CSDN通过智能技术生成