正解:树状数组+差分

解题报告:

戳我!

不得不说灵巧真滴是越来越弱了...连模板题都要放上来了QAQ

因为今天考试的T3正解要用到树状数组这才惊觉树状数组掌握得太太太太差了...之前一直靠线段树续着一条狗命 然后又感觉树状数组好像挺复杂挺难明白的就一直没了解也懒得去理解QAQ

然后赶紧就滚去把两个模板给做了

1就懒得港了实在太模板了,2的话是因为还要用差分然后巧的是差分我也不会so就顺便把差分也了解了下quq所以就觉得写下题解记录下趴quq

首先港下差分到底是个啥趴quq

其实我记得最开始我了解前缀和然后看线段树的时候有个大胆沙雕的想法,就是说,我能不能就用个差分(当时还不知道叫差分...反正就想着开个数组存他们滴差)然后如果要修改我其实只用修改一个变量嘛是吧

当然这种不切实际的玩意儿很快就会被推翻的--差分只支持单次修改多次查询,像线段树的题目都是多次修改很快就GG了

但是!在这里!我滴sd想法居然给了点儿启发!

我们可以开个树状数组专门存差分,然后因为差分这个神奇的玩意儿的存在我们在修改一个区间的时候事实上是只用修改两个值的!然后就用树状数组维护一下就好了!(但是这里要注意一下就是,这个并不能推广开大规模使用,因为你可以发现,差分之和全部加起来其实是只有一个数的值的(小学奥数你应该没有那么蠢?)相当于我只能用来处理查询一个数的值对蛤?好了会了这个就没有什么问题辣!

放代码!

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define rp(i,x,y) for(ll i=x;i<=y;++i)
#define lowbit(x) x&(-x)
ll n,m,tr[],x,y;
ll read()
{
    ;;
    '))ch=getchar();
    ;
    )+(x<<)+(ch^'),ch=getchar();
    return y?x:-x;
}
void update(ll x,ll d){while(x<=n)tr[x]+=d,x+=lowbit(x);return;}
ll query(ll x){ll ans=;)ans+=tr[x],x-=lowbit(x);return ans;}
int main()
{
    n=read();m=read();
    rp(i,,n)x=read(),update(i,x-y),y=x;
    rp(i,,m)
    {
        ll a=read(),b=read();
        ){ll c=read(),d=read();update(b,d);update(c+,-d);}
        else printf("%lld\n",query(b));
       }
    ;
}

点我♂看♂傻逼灵巧在线WA!

哦对了我有点儿担心以后你突然一下脑抽又感觉无法理解树状数组了,所以还是存下我浅薄滴理解(umm...如果有错麻烦看到了的大佬私信我下给我指正下错误不胜感激QAQ

就反正我觉得是你可以理解为它这个tr中每个元素是从它标号那个位置右往左存 存的个数为它的lowbit

好了over

哇我怎么讲得这么简略...得嘞我觉得以后如果我没懂了回来翻还是懂不了QAQ

洛谷P3368 树状数组2 树状数组+差分的更多相关文章

  1. 模板【洛谷P3368】 【模板】树状数组 2

    P3368 [模板]树状数组 2 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数数加上x 2.求出某一个数的值 树状数组区间加,单点查询. code: #include <i ...

  2. 洛谷 P3373 【模板】线段树 2

    洛谷 P3373 [模板]线段树 2 洛谷传送门 题目描述 如题,已知一个数列,你需要进行下面三种操作: 将某区间每一个数乘上 xx 将某区间每一个数加上 xx 求出某区间每一个数的和 输入格式 第一 ...

  3. 洛谷 P3368 【模板】树状数组 2 题解

    P3368 [模板]树状数组 2 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数数加上x 2.求出某一个数的值 输入格式 第一行包含两个整数N.M,分别表示该数列数字的个 ...

  4. 洛谷P2617 Dynamic Ranking(主席树,树套树,树状数组)

    洛谷题目传送门 YCB巨佬对此题有详细的讲解.%YCB%请点这里 思路分析 不能套用静态主席树的方法了.因为的\(N\)个线段树相互纠缠,一旦改了一个点,整个主席树统统都要改一遍...... 话说我真 ...

  5. 洛谷P5069 [Ynoi2015]纵使日薄西山(树状数组,set)

    洛谷题目传送门 一血祭 向dllxl致敬! 算是YNOI中比较清新的吧,毕竟代码只有1.25k. 首先我们对着题意模拟,寻找一些思路. 每次选了一个最大的数后,它和它周围两个数都要减一.这样无论如何, ...

  6. BZOJ3262/洛谷P3810 陌上花开 分治 三维偏序 树状数组

    原文链接http://www.cnblogs.com/zhouzhendong/p/8672131.html 题目传送门 - BZOJ3262 题目传送门 - 洛谷P3810 题意 有$n$个元素,第 ...

  7. [NOIP2013提高&洛谷P1966]火柴排队 题解(树状数组求逆序对)

    [NOIP2013提高&洛谷P1966]火柴排队 Description 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度. 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相 ...

  8. 洛谷 P4396 (离散化+莫队+树状数组)

    ### 洛谷P4396  题目链接 ### 题目大意: 有 n 个整数组成的数组,m 次询问,每次询问中有四个参数 l ,r,a,b .问你在[l,r] 的区间内的所有数中,值属于[a,b] 的数的个 ...

  9. 洛谷 P1972 [SDOI2009]HH的项链——树状数组

    先上一波题目 https://www.luogu.org/problem/P1972 这道题是询问区间内不同数的个数 明显不是正常的数据结构能够维护的 首先考虑 因为对于若干个询问的区间[l,r],如 ...

  10. 【题解】洛谷P1966 [NOIP2013TG] 火柴排队(树状数组+逆序对)

    次元传送门:洛谷P1966 思路 显然在两排中 每排第i小的分别对应就可取得最小值(对此不给予证明懒) 所以我们只在意两排的火柴是第几根 高度只需要用来进行排序(先把两个序列改成有序的方便离散化) 因 ...

随机推荐

  1. X-WAF简单测试体验

    X-WAF 最近才关注到的一款云WAF,花了一些时间搭建了一个环境,并做了一些测试,感觉比较适合新手来练习WAF Bypass. X-WAF是一款适用中.小企业的云WAF系统,让中.小企业也可以非常方 ...

  2. 安装RVDS2.2

    本人经过一晚上的折腾,已经将rvds2.2成功部署在为AMD平台的CPU上面,除了些许小BUG外,编译程序无任何错误,可成功将产上的AXF文件通过Jlink烧制到开发板上. 感谢cdly7475为我们 ...

  3. 第六篇:Eclipse上运行第一个Hadoop实例 - WordCount(单词统计程序)

    需求 计算出文件中每个单词的频数.要求输出结果按照单词的字母顺序进行排序.每个单词和其频数占一行,单词和频数之间有间隔. 比如,输入两个文件,其一内容如下: hello world hello had ...

  4. 实现iOS中的链式编程

    谈到链式编程,那Masonry几乎就是最经典的代表.如: make.top.equalTo(self.view).offset() 像这样top.equalTo(self.view).offset(6 ...

  5. 云计算设计模式(二十一)——Sharding分片模式

    云计算设计模式(二十一)——Sharding分片模式 将一个数据存储到一组水平分区或碎片.存储和访问大量数据时,这个模式可以提高可扩展性. 背景和问题 由一个单一的服务器托管的数据存储区可能会受到以下 ...

  6. 使用virtualbox 配置 linux host-only虚拟主机连接外网(转载)

    host-only 下的虚拟机之间可以互相访问,虚拟机和宿主机可以互相访问,但是虚拟机不能访问外网. 需要设置: 1.宿主机设置 先对宿主机(windows机器,我这里是win7系统)进行相关配置. ...

  7. @components问题

    场景:在引入组件的时候,希望解决"../components/page/member"这样的引入: 希望:像vue的项目中用@components/page/member引入组件 ...

  8. 小米2s线刷出现remote: partition table doesn't exist

    =================问题============ 小米2s线刷出现remote: partition table doesn't exist =================解决方案= ...

  9. Javascript 变态题解析

    读者可以先去做一下感受感受. 当初笔者的成绩是 21/44... 当初笔者做这套题的时候不仅怀疑智商, 连人生都开始怀疑了.... 不过, 对于基础知识的理解是深入编程的前提. 让我们一起来看看这些变 ...

  10. 游戏AI-行为树

    参考: 游戏AI—行为树研究及实现 GAD腾讯游戏开发者平台:游戏中的人工智能AI 腾讯开源项目behaviac 占坑,待编辑