树状数组
树状数组
correct!
It's better to burn out than to fade away.
展开
-
2020牛客寒假算法基础集训营6 F 十字阵列
https://ac.nowcoder.com/acm/contest/3007/F题目描述小 Q 新学会了一种魔法,可以对一个 N行M列 的网格上的敌人造成伤害第 i 次使用魔法可以对网格上的一个十字形区域(即第 xi 行和第 yi 列的并)中的每个格子上的敌人造成 zi 点伤害现在小 Q 一共使用了 H 次魔法,你需要在所有的施法完成之后统计造成伤害的情况,详见输出描述提醒:本...原创 2020-02-15 18:22:52 · 175 阅读 · 0 评论 -
poj 2182 Lost Cows
题目链接题目大意:有n头奶牛,已知它们的身高为 1~n 且各不相同,但不知道每头奶牛的具体身高。现在这n头奶牛站成一列,已知第i头牛前面有Ai头牛比它低,求每头奶牛的身高。思路从最后一头牛考虑,如果最后一头牛前面有a个比它小的,那么可以肯定最后一头牛的身高就是a + 1,也就是序列中未被访问的第 a + 1个,对于最后一头牛,因为一开始所有的身高都存在,都没有被某一头牛占领(没有确...原创 2020-01-26 20:05:00 · 118 阅读 · 0 评论 -
acwing 242 一个简单的整数问题
题目描述给定长度为N的数列A,然后输入M行操作指令。第一类指令形如“C l r d”,表示把数列中第l~r个数都加d。第二类指令形如“Q X”,表示询问数列中第x个数的值。对于每个询问,输出一个整数表示答案。输入格式第一行包含两个整数N和M。第二行包含N个整数A[i]。接下来M行表示M条指令,每条指令的格式如题目描述所示。输出格式对于每个询问,输出一个...原创 2020-01-23 22:09:48 · 215 阅读 · 0 评论 -
acwing 241楼兰图腾
题目描述:在完成了分配任务之后,西部314来到了楼兰古城的西部。相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(‘V’),一个部落崇拜铁锹(‘∧’),他们分别用V和∧的形状来代表各自部落的图腾。西部314在楼兰古城的下面发现了一幅巨大的壁画,壁画上被标记出了N个点,经测量发现这N个点的水平位置和竖直位置是两两不同的。西部314认为这幅壁画所包含的信息与这N...原创 2020-01-23 21:43:52 · 237 阅读 · 0 评论 -
树状数组模板
模板原创 2020-01-23 12:32:08 · 71 阅读 · 0 评论 -
树状数组(单点查询,单点修改,区间查询,区间修改)
树状数组就是形如上图的一种数据结构单点查询lowbit运算设计的很巧妙int lowbit(int x){ return x & -x;}可以求出一个数的二进制表示中最低位的1和后面的0组成的数字例如:lowbit(7),7的二进制是111,lowbit(7)就是,最低为的1和后面的0(没有0)组成的数,二进制表示为1,即数字1用树状数组维护的实质上是一个...原创 2019-08-23 10:12:15 · 262 阅读 · 0 评论 -
树状数组求逆序对
首先建立一个数组,范围是原数组中的最大值,该数组用于存放某一个数字出现的次数,从最后一个数字开始计算,求逆序对其实就是一个数字前面有多少个比它大的数字,换句话说就是一个数后面有多少个比自己小的数字,我们既然是倒序求解的,那就可以保证在求解一个位置的数字的逆序的时候,后面的位置的值我们计算过了并且知道后面的数字的大小,可以用树状数组维护一个(数字已经出现次数的)区间和,每次计算的时候查询一下比自己小...原创 2019-09-03 16:53:28 · 88 阅读 · 0 评论 -
zzulioj 1536 小明的序列 (树状数组)
AC通道题面很简单,直接分析问题吧先考虑怎么处理数据,对于每一个整数 n ,可以用一个映射关系保存它的对应位置,即map[ n] = i;表示 n 是第 i 个数,然后考虑对于操作1,删除一个数字,只需要找到它在的对应位置,然后让这个位置后面的每一个值都减一即可,很容易可以想到差分,但是中间会后询问操作,因此我们还需要维护一个前缀和,用前缀和数组会超时,可以考虑用树状数组维护前缀和,每次...原创 2019-09-23 21:38:49 · 213 阅读 · 0 评论