Gorgeous Sequence HDU - 5306 (线段树)

题目要求对一个序列进行三种操作:0型操作更新区间元素为min(t, a[i]),1型操作输出区间最大值,2型操作输出区间和。通过线段树可以高效处理这些操作,特别是0型操作,通过判断t和区间最大值的关系来避免不必要的更新。解题关键在于维护区间最大值、区间和以及最大值的个数。" 40890019,1487373,Python调用中国天气网API获取城市天气,"['Python编程', '数据获取', 'API接口']
摘要由CSDN通过智能技术生成

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

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值