2018/7/18 hdu5306 Gorgeous Sequence 线段树区间更新 训练日记1

这篇训练日记介绍了如何解决HDU5306 Gorgeous Sequence的问题,涉及到使用线段树进行区间更新、查询最大值和求和操作。在面对大规模数据时,单纯使用线段树会导致超时,因此提出了优化策略,维护区间最大值、严格次大值和最大值个数,通过巧妙的更新方式避免了复杂度爆炸。此外,还提供了相关问题的扩展讨论和代码实现。
摘要由CSDN通过智能技术生成

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 op

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值