E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
【树状数组】
RMQ、
树状数组
、线段树
1、RMQ(区间最大值、区间最小值)RMQ(RangeMinimum/MaximumQuery),即区间最值查询O(nlogn)时间内进行预处理,然后在O(1)时间内回答每个查询①预处理设A[i]是要求区间最值的数列,F[i,j]表示从第i个数起连续2^j个数中的最大值。(DP的状态)例如:A数列为:3245681297F[1,0]表示第1个数起,长度为2^0=1的最大值,其实就是3这个数。同理F
IIYMGF
·
2020-08-24 14:45
数据结构
剑指Offer
st表与
树状数组
求RMQ问题
st表其实就是运用dp思想解决RMQ问题你想解决这个区间长度那我开一个二维数组dp[i][j]长度为2^j代表区间[i,i+2^j-1]那么显而易见我们可以继续再分分的基础是什么呢就是[i,2^(j-1)-1],[2^(j-1)-1,,i+2^j-1]同理是不是最后得到什么?没错就是j=0时候那么长度为1就是原数组我再回来不就得到min了吗?在线查询怎么做?那么我既然是等分的所以对我查询的空间我一
ljq--linuxer
·
2020-08-24 14:07
DS-线段树
ACM
树状数组
求逆序对
我们可以先开一个大小为a的最大值的数组t,每当读入一个数时,我们可以用桶排序的思想,将t[a[i]]加上1,然后我们统计t[1]~t[a[i]]的和ans,ans-1(除掉这个数本身)就是在这个数前面有多少个数比它小。我们只要用i-ans就可以得出前面有多少数比它大,也就是逆序对的数量。#include#include#include#definelowbit(x)(x)&(-x)usingnam
手可摘星辰!!
·
2020-08-24 14:46
数据结构——树状数组
求逆序对个数(
树状数组
)
#include#include#definelllonglongusingnamespacestd;constintmaxn=100010;structnode{intw;intp;}a[maxn];intn;intbit[maxn];intcmp(nodea,nodeb){if(a.w==b.w)returna.p>n;for(inti=1;i>a[i].w;a[i].p=i;}sort(a+
fl_334
·
2020-08-24 14:29
线段树
RMQ问题
树状数组
用
树状数组
解决RMQ问题,请看参考资料,作者用Java实现参考资料:http://www.cnblogs.com/ljsspace/archive/2011/08/10/2133514.html下面是仿照用
oaeo
·
2020-08-24 13:20
算法
POJ2299
树状数组
求逆序数
除了用归并排序来求逆序对个数,还可以使用
树状数组
来求解。
树状数组
求解的思路:开一个能大小为这些数的最大值的
树状数组
,并全部置0。
Onlyan
·
2020-08-24 13:21
ACM解题报告
POJ 2352 Stars
//
树状数组
#include#include#include#include#include#include#include#include#include#include#include#include
aisaihui6702
·
2020-08-24 13:15
POJ 2155
楼教主的题,很不错的二维
树状数组
#include#include#include#include#include#include#include#include#include#include#include
aisaihui6702
·
2020-08-24 13:15
树状数组
1——
树状数组
入门
先上一发
树状数组
的经典图片吧:仔细看一下,发现tree的每一个节点的高度并不是随意的,而是由它转成二进制之后末尾连续零的数量决定的,连续零的数量加1,就是高度,例如:3->11零的数量为0,加1等于1,
Hypoc_
·
2020-08-24 13:59
#
数据结构
树状数组
(求逆序数)
一.
树状数组
介绍1)性质
树状数组
本质上就是一个数组,它与普通数组不同之处在于它的某些元素维护的是一段区间的信息,已区间和为例,若i为奇数,则第i个元素就是源数据的第i个元素,若i为偶数,则第i个元素维护的是
_TCgogogo_
·
2020-08-24 13:09
数据结构
ACM
树状数组
1 [cdq分治]
树状数组
1题目描述如题,已知一个数列,你需要进行下面两种操作:1.将某一个数加上x2.求出某区间每一个数的和输入格式第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。
MekakuCityActors
·
2020-08-24 13:24
cdq分治
BZOJ 3744: Gty的妹子序列 【分块求区间逆序对】
题目分析:nnlognn\sqrtn~lognnnlogn的分块(+
树状数组
预处理)+主席树维护区间值求散块nnlognn\sqrt{nlogn}nnlogn的分块+
树状数组
处理前i块小于j(及大于j)
Master.Yi
·
2020-08-24 12:16
分块
树状数组
求逆序对 (超超详细讲解)
求逆序对的做法,举个例子:给定序列96487遍历这个数组,每次遇到一个数,就把该数所在的
树状数组
的位置处的数加一:123456789000000000初始数组值为0,代表插入0个数,sum(n)代表小于等于该数的个
AGNING
·
2020-08-24 12:34
树状数组
初学(1)——位置i左(右)边小于a[i]的个数
/*
树状数组
案例:给出数组a[1],a[2],...,a[n]输出数组ans[1],ans[2],...,ans[n]满足ans[i](0#defineN1000inta[N+10],n;intans[
Y_F_Wang
·
2020-08-24 12:45
数据结构笔记
树状数组
——求逆序对个数(初学者都能看懂)
在网上翻看了一些博客,感觉大体对于
树状数组
求逆序对的讲解不够详细,那些博客,更多像是给已经学会逆序对的人复习用的。而初学者,可能要冥思苦想。
回忆过往-静夜思-勿颓废
·
2020-08-24 12:38
RMQ &&
树状数组
(初学)
先复习一下今天刚学的RMQ算法知识;RMQ算法(RangeMinimumQuery):1.算法思想求静态范围最值问题,适合于静态连续区间查询。A[i][j]的值代表的是原数组中以i开始的连续(1//2.1预处理代码for(intj=1;j!=20;++j)//代表区间大小for(inti=1;i+(1<
herongweiV
·
2020-08-24 12:22
【RMQ/线段树/树状数组】
=====ACM=====
树状数组
学习小结
树状数组
,又称二进制索引树,英文名BinaryIndexedTree。一、
树状数组
的用途主要用来求解数列的前缀和,a[0]+a[1]+...+a[n]。
lulipeng_cpp
·
2020-08-24 12:44
Date
Structure
OI算法汇总
转自yangle61:http://blog.csdn.net/yangle61/article/details/520552601.数据结构线段树
树状数组
平衡树Link-Cut-Tree可持久化数据结构分块
YxuanwKeith
·
2020-08-24 12:34
总结
树状数组
初学(一)
什么是
树状数组
呢?
cqbzzyq
·
2020-08-24 12:33
数据结构
树状数组
CodeForces 1076E Vasya and a Tree(树上差分+
树状数组
)
原题地址:https://codeforces.com/contest/1076/problem/E题意:给出一棵树,有mmm次操作,每次操作有一个v,d,x,v,d,x,v,d,x,表示将以vvv为根节点,距离vvv的长度小于等于ddd的所有节点权值加上xxx,最后求所有节点的权值。思路:如果是对节点v的子树进行修改,那么问题可以用dfs序转化为序列上的问题,但是这题是对距离为d的进行修改,那么
yiqzq
·
2020-08-24 11:33
ACM_数据结构
Codeforces 570D Tree Requests
思路两种思路,dfs序+
树状数组
或dsuontree。dfs序+
树状数组
我们可以跑一遍dfs序,这样子树在dfs序中连续。dfs时同时处理出距根所有距离的节点。
xzxxzx401
·
2020-08-24 11:46
dsu-on-tre
2017暑假
数据结构
线段树
POJ 3067 Japan(
树状数组
)
题记:
树状数组
求逆序对。
moyangxian
·
2020-08-24 11:51
POJ
POJ 3321 Apple Tree(
树状数组
)
题意:由n个节点形成一颗树,开始时每个节点都有一个苹果,然后对这颗数进行更改和查询。更改:如果树上有苹果就摘下来,否则这个节点会长出一个苹果。查询:以这个节点为根节点形成的子树一共有多少个苹果。题记:先将树dfs遍历一次,利用dfs遍历的顺序记录下每个节点的序号,in[i]表示遍历到i节点的序号,out[i]表示回溯到i节点的序号。那么以i为节点的子树所涉及到的点为in[i]~out[i]。用树状
moyangxian
·
2020-08-24 11:51
POJ
CF165D Beard Graph(dfs序+
树状数组
)
题面题解乍一看,单点修改,单链查询,用树链剖分维护每条链上白边的数量就完了,还是……得写树链剖分吗?……3e5,乘两个log会T吗……(双手颤抖)(纠结)不!绝不写树链剖分!这题如果能维护每个点到根节点路径上的白边数量,就可以用lca直接算,怎么维护呢把点按dfs序排序,每个点存它到根节点路径上白边数量,当边的颜色变化时,就把以该边下端点为根的子树内的值整体加一或减一,也就是在按dfs序排序后的序
DD(XYX)
·
2020-08-24 11:11
树论
线段树
Codeforces Round #263 (Div. 1) A B C
1遇到1,必定切断,依照这样去转移就可以C:
树状数组
,再利用启示式合并,开一个l,r记录当前被子左右下标。和一个flip表示是否翻转代码:A:#include#include
weixin_34415923
·
2020-08-24 11:52
Tree Requests
树状数组
+dfs搜索序
链接:http://codeforces.com/problemset/problem/570/DD.TreeRequeststimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputRomanplantedatreeconsistingofnvertices.Eachve
luckyone2014
·
2020-08-24 10:20
dfs
树状数组
HDU 6133 Army Formations
树状数组
+ 启发式合并
传送门:HDU6133题意:给你一棵n个节点的二叉树,每个节点要提交一个任务,需要花费一定的时间,每个节点都要提交这个节点和其子树所有的任务,从0时刻开始提交任务,每个任务提交时的罚时定义为该任务提交的时刻+该任务提交所需的时间。求每个节点提交完所有任务的最小罚时。思路:首先结合样例我们可以将题意转化为:对于每个节点,将其子树上所有点按权值从小到大排序,则所求结果为∑val[i]*(n-i),n为
WA是一笔财富
·
2020-08-24 09:11
hdu
线段树&&BIT&&平方分割
[dsu] codeforces 375D. Tree and Queries
题解:离线,回答以v为根的询问时,如果暴力把整棵子树的颜色存进
树状数组
,复杂度是O(n2logn)。
kg20006
·
2020-08-24 08:56
ACM
题解
NOIp2015提高组 解题报告
晚上写了一堆基础模板:spfa最短路径,prim和kruskal的最小生成树,hungary的二分图匹配,
树状数组
,kmp字符串匹配,等等。然后突然发现了一个叫做2-SAT的神奇算法。
jr_mz
·
2020-08-24 08:44
HDU 4777 Rabbit Kingdom(
树状数组
离线处理)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4777题目大意:一个兔子王国,有N只兔子,每只兔子有一个重量,如果两只兔子的重量不互质,那么就会干架,现在国王想将lr之间的兔子关进监狱,它想知道会有多少只兔子不会和别的兔子干架。也就是求l到r这个区间内有多少个数与所有数都互质题目解析:这题的思路真感觉是山路十八弯呀。后面学习了kuangbin大大的题
幻月瑶琴
·
2020-08-24 08:50
数据结构-树状数组
CF570D Tree Requests
离线+
树状数组
如果子树中的一个深度的所有点中有两个以上的字母出现了奇数次,那么这个询问的答案就是$No$,其他的情况吧都是$Yes$。
dashu497731727
·
2020-08-24 08:10
bzoj2716 [ Violet 3 ] --cdq分治+
树状数组
树状数组
打错调了一个小时。。。对于点(x,y),其它点只会在他的左下、右下、左上、右上四个方向上。我们只需求在左下方向上就可以了,因为其他方向可以通过改变相对位置求得。考虑cdq分治。
agsqv28660
·
2020-08-24 07:33
牛客算法周周练15 解题报告(ABD)
牛客算法周周练15A-数列下标(单调栈)牛客算法周周练15B-可持久化动态图上
树状数组
维护01背包(贪心)牛客算法周周练15D-树上求和(DFS序+线段树维护平方和)比赛AC了两题,然后A题跑暴力侥幸过了
_Hayasaka
·
2020-08-24 07:30
赛后报告
Codeforces-1076E:Vasya and a Tree(
树状数组
)
E.VasyaandaTreetimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputVasyahasatreeconsistingofnverticeswithrootinvertex1.Atfirstallverticeshas0writtenonit.Letd(i,
Mitsuha_
·
2020-08-24 07:45
数据结构-线段树//树状数组
算法导论学习笔记——2.3.1分治法——习题2-4逆序对数
前两天做
树状数组
和线段树专题时碰到过当时的做法如下思路:从前往后读,读一个数x,让a[x]+=1,然后让ans+=∑(i=x+1…n)a[i],这个地方用线段树或者
树状数组
优化降低时间复杂度为lgn再优化方法
so vegetable I am
·
2020-08-24 07:05
算法导论
[ 题解列表 ] GDUT-ACM集训题目
放在VirtualJudge上的专题:sum=7;[题解][
树状数组
]POJ2352-Starshttps://www.cnblogs.com/Kaidora/p/10389073.html[题解][BFS
aolei8784
·
2020-08-24 06:25
「NOIP2017」列队 //线段树
题解//
树状数组
的做法我不会呀写一写暴力一些的做法吧维护每一行和最后一列,于是需要实现的操作就变成了找到并删掉第k个数、把一个数
Starria
·
2020-08-24 05:12
线段树
四分树
1013:【模板】四分树(二维线段树/二维
树状数组
)时间限制:4Sec内存限制:512MB提交:4解决:2[提交][状态][讨论版][命题人:stone41123][Edit][TestData]题目描述给定一个
stone41123
·
2020-08-24 05:54
奇妙的四分树
hdu 3030 Increasing Speed Limits(
树状数组
求最长上升子序列)
在前边关于DP总结的文章中说了通过普通的DP法个二分查找法求最长上升子问题,最近在学习BIT,然后突然发现原来通过BIT也可以求最长上升子序列问题。本来想着可以通过类似的方法在O(nlogn)时间内求出,然而题目的意思是求出总和,这样的话二分法就不好使了,一开始也没有理解,不过通过单纯的求最长上升子序列,终于搞明白了。先来看看求解普通的最长上升子序列问题:题目中首先将重复的元素去掉,以为我们求的是
xueerfei
·
2020-08-23 21:26
树状数组/线段树
fzu oj 2236 第十四个目标
树状数组
好题 dp
题意:给定一个数组,求严格递增子序列的个数思路:根据经典的LIS问题,很快就可以设计出状态转移方程,dp[i]=sum(dp[j])+1,(0#include#includeusingnamespacestd;constintmaxn=100005;constintmod=1000000007;intn,cnt;inta[maxn],b[maxn],c[maxn],dp[maxn];intbin_
799050408
·
2020-08-23 21:12
DP
数据结构
P3902 递增(LIS+
树状数组
)
P3902递增尝试转化成已知的问题:如果原问题是非严格单调递增,则直接求出LISLISLIS的⻓度,从n中减去就行了。注意到这里的aiaiai都是整数,ai#include#include#include#include#include#include#definels(p=s;--i)//#defineint__int128usingnamespacestd;typedeflonglongll;
繁凡さん
·
2020-08-23 21:36
#
LCS
LIS
【HDU6635 Nonsense Time】
树状数组
维护最长上升子序列
以前都是直接dp的,这次用
树状数组
,居然也挺好用的。
树状数组
每个结点在变成树状之前,都表示以那个数字结尾的LIS。
树状数组
维护前缀最
YuanSnowing
·
2020-08-23 21:44
树状数组
LIS
最长上升子序列(LIS)的三种求法
但是如果权值如果不为1,n又非常大,则n²和二分都没法用了,但是可以使用
树状数组
来维护(貌似也是人尽皆知),这种做法的思想跟第一种n²很像,大的值,可以由前面小的值转移,这个时候使用
树状数组
维护,将原来的修改
brav0
·
2020-08-23 21:11
dp
P1020 导弹拦截 dp
树状数组
维护最长升序列
题目描述某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是\le50000≤50000的正整数),计算这套系统最多能拦截多少导弹,如果要拦
weixin_30666943
·
2020-08-23 20:03
51nod 1376 最长递增子序列的数量
树状数组
数组A包含N个整数(可能包含相同的值)。设S为A的子序列且S中的元素是递增的,则S为A的递增子序列。如果S的长度是所有递增子序列中最长的,则称S为A的最长递增子序列(LIS)。A的LIS可能有很多个。例如A为:{13204},134,124均为A的LIS。给出数组A,求A的LIS有多少个。由于数量很大,输出Mod1000000007的结果即可。相同的数字在不同的位置,算作不同的,例如{112}答案
translata
·
2020-08-23 19:30
树状数组
【51NOD1376】—最长递增子序列的数量(
树状数组
)
传送门仔细回忆一下是怎么求最长递增子序列的?我们发现对于当前第iii位,用f[i]f[i]f[i]表示以iii为结尾的最长上升子序列的长度再用一个cntcntcnt表示数量那么当前f[i]=max(∑j=1nf[j]),cnt[i]=∑f[j]=f[i]cnt[j]f[i]=max(∑_{j=1}^{n}f[j]),cnt[i]=∑_{f[j]=f[i]}cnt[j]f[i]=max(∑j=1nf
Stargazer.
·
2020-08-23 18:43
51Nod - 1249 近似有序区间 (单调栈+
树状数组
+偏序)(好题)
题目链接极大极小子段,就是一个序列,它的最小值在最前面,它的最大值在最后面。现在给你一个由1~n的一个排列构成的数组S,求它有多少个这样的子段例如:S={3,1,2,5,4},S的所有极大极小子段为:{3},{1},{1,2},{1,2,5},{2},{2,5},{5},{4}Input第一行:一个数N,表示S的长度。(1=j&&i>=j,其中b【i】代表第i个数字作为最大值的最左的端点,d【i】
qq_42479630
·
2020-08-23 18:11
树状数组
树状数组
Binary Indexed Tree及相关LeetCode题目
关于我的Leetcode题目解答,代码前往Github:https://github.com/chenxiangcyr/leetcode-answers问题提出有一个数组nums[0...n-1],我们希望能提供如下两个功能:功能1:求出前i个元素的和sum功能2:改变某个元素的值,即nums[i]=x可以看出,功能1的时间复杂度为O(n),功能2的时间复杂度为O(1)。当然,为了改进功能1的时间
专职跑龙套
·
2020-08-23 18:42
51Nod - 1376 最长递增子序列的数量(
树状数组
+DP)*
题目链接:https://cn.vjudge.net/problem/51Nod-1376#includeusingnamespacestd;#definedebugputs("YES");#definerep(x,y,z)for(int(x)=(y);(x)y.len)return(*this);returnnode((y.cnt+cnt)%mod,len);}};structd{intnum,
等我学会后缀自动机
·
2020-08-23 18:13
其他OJ习题集
树状数组
动态规划之优化DP
【
树状数组
】51nod 1376 最长递增子序列的数量
通道思路:dp[i]由dp[i-1]而来,统计小于a[i]的位置k,且dp[k]+1=dp[i]的所有个数即可。代码:#include#include#includeusingnamespacestd;typedeflonglongll;templateinlineboolrd(T&ret){charc;intsgn;if(c=getchar(),c==EOF)returnfalse;while(
diwugi7576
·
2020-08-23 16:15
上一页
13
14
15
16
17
18
19
20
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他