hdu 3874 树状数组 离线处理

这篇博客详细介绍了如何利用树状数组解决HDU 3874问题,重点在于离线处理技术的应用。
摘要由CSDN通过智能技术生成

hdu 3874

/*
题意:此题的大意思说有一串珠子,每个珠子都有自己的欣赏值value,现在给你一
    串珠子每个的欣赏值,并给出一些询问,查询某个区间内部总欣赏值是多少,但是有
    一个约定就是如果这个区间内部有两个珠子的欣赏值是一样的,那么他们就视为一个。
    其实也就是求某个区间内部不同的数的和。

采用离线操作
离线
    通常情况下对一种固定的序列,进行多种不同的询问操作。由于这些操作会对序列
    产生影响,使后面的询问无法得出正确结果。所以把所有询问记录下来,然后经过
    特定的排序处理后再进行操作

本题离线原因:
    由于询问一段区间内不同元素的和,那么相同元素就要选择一个作为代表(序列中相同元素
    的最右边的元素为代表),由于区间
    不同,所以选择的代表不同。
    比如数据
    1 1 1 1 1
    询问
    1 4 
    2 3
    我们用最右边元素为代表
    则询问1 4 时 序列为 0 0 0 1 1 结果为1
    在询问2 3 时 结果变成0,所以不同询问之间产生了影响。所以想到用离线进行处理。

本题如何离线:(序列从左向右移动,需要用右边为代表)
    一、关于询问的特殊处理
        由于我们采用了最右边的元素为代表,则
        我们知道
        1)如果对n组询问的右边界不变,则前面的询问操作不影响后面的操作。
        2)如果对n组询问的右边界
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值