
树状数组
Nowed
把泪水种在心上,一定会开出勇敢的花。
展开
-
#离散化+树状数组# [luogu P3586] [POI2015]LOG
TitleP3586 [POI2015]LOG对于一个一开始长度为000的序列,有mmm次操作。有两种操作:将某一位改成一个数判断是否能将进行sss次从序列中选出ccc个正整数,并将它们减一的操作。Solution注意离散化分别对应的数组注意可能会炸long long ,但是大概要估计一下空间关键在第二个操作Z c sZ\ c\ sZ c s。设cntcntcnt为序列中有多少个数是大于等于sss的数量,sumsumsum为序列中小于sss的原创 2020-11-02 16:59:41 · 174 阅读 · 0 评论 -
#树状数组+并查集# [luogu P4145] 上帝造题的七分钟2 / 花神游历各国
TitleP4145 上帝造题的七分钟2 / 花神游历各国给定nnn个数mmm次操作,如果zzz是111的话,查询lll到rrr之间的和,否则将lll到rrr之间的数都开方。Solution注意开long long因为对于一个数,最多开666次方,所以当一段区间都是111的时候,就可以跳过,处理下一段。然后就是用树状数组暴力处理。Code#include<cstdio> #include<algorithm>#include<cmath>#in原创 2020-10-26 16:19:18 · 144 阅读 · 0 评论 -
#树状数组# [luogu P1972] [SDOI2009]HH的项链
TitleP1972 [SDOI2009]HH的项链Solution注意树状数组中ask函数中x>=1莫队只能拿44分~~把询问根据右端点排序,然后用树状数组统计的是1−j1-j1−j中的不同的个数每次将指针往右移,如果当前的数前面已经标记过了,就去掉前面的标记,在当前位置标记,因为前面的对现在询问的区间是没有贡献的。Code#include<cstdio>#include<cmath>#include<algorithm>#include原创 2020-10-19 10:59:13 · 136 阅读 · 0 评论 -
#树状数组#[ssloj 1474] 简单计算题 [jzoj] Tiny Counting
TitleSolution假如a,b,c,da,b,c,da,b,c,d可以相等,那么ansansans是顺序对和逆序对的乘积。可以减去不合法的的方案数。ls,lb,rs,rbls,lb,rs,rbls,lb,rs,rb指的是比分别左边比iii小的,大的,右边比iii小的,大的的数量。排除以下四种情况:a=ca=ca=cSd<Sa=c<SbS_d<S_{a=c}<S_bSd<Sa=c<Sb(a=c)<b,d(a=c)<b,d(a=c)原创 2020-08-13 21:40:40 · 168 阅读 · 0 评论 -
[poj 2155] Matrix {二维树状数组}
题目http://poj.org/problem?id=2155解题思路这道题看起来是区间修改,单点查询。但是可以用树状数组进行单点修改和单点查询。用容斥定理将修改的矩阵的四个角都标记一下就可以了。代码#include<cstdio>#include<cstring>const int N=1123; using namespace std; in...原创 2019-08-23 12:10:16 · 154 阅读 · 0 评论 -
[luogu P4514] 上帝造题的七分钟 {二维树状数组}
题目https://www.luogu.org/problem/P4514解题思路设d[i][j]d[i][j]d[i][j]是原数组的差分数组。那么对于x,yx,yx,y,它的二位前缀和是∑i=1x∑j=1y∑h=1i∑k=1jd[h][k]\sum_{i=1}^x\sum_{j=1}^y\sum_{h=1}^i\sum_{k=1}^j d[h][k]i=1∑xj=1∑yh=1∑i...原创 2019-08-23 16:43:05 · 172 阅读 · 0 评论 -
[ch 4201] 楼兰图腾{树状数组(逆序对)}
题目http://contest-hunter.org:83/contest/0x40%E3%80%8C%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E8%BF%9B%E9%98%B6%E3%80%8D%E4%BE%8B%E9%A2%98/4201%20%E6%A5%BC%E5%85%B0%E5%9B%BE%E8%85%BE解题思路 本题实际求的是逆...原创 2018-08-21 20:52:29 · 340 阅读 · 0 评论 -
[luogu 3368] 树状数组2 【模板】
题目https://www.luogu.org/problemnew/show/P3368解题思路 来介绍一下差分 设数组a[]={1,6,8,5,10},那么差分数组b[]={1,5,2,-3,5} 也就是说b[i]=a[i]-a[i-1];(a[0]=0;),那么a[i]=b[1]+….+b[i];(这个很好证的)。 假如区间[2,4]都加上2的话 ...原创 2018-08-22 11:28:46 · 188 阅读 · 0 评论 -
[luogu 3374]树状数组1【模板】
题目https://www.luogu.org/problemnew/show/P3374解题思路对于树状数组,我在此之前并没有敲过一道题。现在做的两道题([poj 3468]A Simple Problem with Integers &amp; [ch 4201] 楼兰图腾{树状数组(逆序对)})都是糊里糊涂的。 所以我便做了两道树状数组模板,加深对树状数组的理解。...原创 2018-08-22 11:22:58 · 222 阅读 · 0 评论 -
[poj 3468]A Simple Problem with Integers{树状数组}
题目http://poj.org/problem?id=3468解题思路对于每条指令“C l r d”,把b[l]b[l]b[l]加上ddd,再把b[r+1]b[r+1]b[r+1]减去ddd。 bbb数组的前缀和∑xi=1b[i]∑i=1xb[i]\sum_{i=1}^{x}b[i]就是经过这些指令后a[x]a[x]a[x]增加的值。 那么序列aaa的前缀和a[1∼x]a[1...原创 2018-08-22 09:11:48 · 353 阅读 · 0 评论 -
2014年初中竞赛试题(南海) 树
题目解题思路 正解:深度优先搜索+树状数组/线段树 歪解:递归+一个类似于线段树的思想代码【歪解】#include&lt;cstdio&gt;using namespace std; int n,m,wt,w[100001],fa[100001],li[100001]; int u,v;//li记录i节点要"加"的值(但并不加,在递归时才带着走)...原创 2018-04-07 16:35:19 · 331 阅读 · 0 评论