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
acm_树状数组
【C++】
树状数组
树状数组
什么是
树状数组
?
树状数组
可以解决什么问题?
树状数组
和线段树的区别在哪里?
树状数组
的优点和缺点
树状数组
介绍如何建立
树状数组
?
Ljnoit
·
2020-07-04 06:34
Code
#
C++
【特别专栏】那些年
我们一起追过的算法
P1972 [SDOI2009]HH的项链(
树状数组
+ 离线化)
题目背景无题目描述HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答……因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。输入输出格式输入格式:第一行:一个整数N,表示
LanQiLi
·
2020-07-04 06:38
树状数组
那些程序员应该掌握的算法
排序冒泡排序选择排序插入排序(二分插入)希尔排序堆排序快速排序归并排序(二路归并,多路归并,Timsort排序算法)计数排序桶排序基数排序拓扑排序搜索DfsBfs二分搜索三分搜索最值与查询RMQ
树状数组
线段树最短路
「已注销」
·
2020-07-04 06:58
Algorithm
Data
Structure
P3368 【模板】
树状数组
2(区间修改 单点查询)
https://www.luogu.org/problemnew/show/P3368//区间修改单点查询#include#include#include#includeusingnamespacestd;#definelowbit(x)(x&(-x))//计算2^kconstintMax=500000+5;intc[Max];//c[i]=a[i–2^k+1]+…+a[i],k为i在二进制下末尾
KLFTESPACE
·
2020-07-04 06:58
树状数组
敌兵布阵(线段树或
树状数组
)
题目传送门一个既可以用
树状数组
又可以用线段树写的题。(不过
树状数组
好像耗时更多,但是写起来比线段树香)题目就是给一个原数组,要么对一个区间内一起增加或者减少一个数值,要么就询问该段区间的和。
Joker_He
·
2020-07-04 06:14
线段树
bzoj 1264: [AHOI2006]基因匹配Match(
树状数组
)
1264:[AHOI2006]基因匹配MatchTimeLimit:10SecMemoryLimit:162MBSubmit:1211Solved:798[Submit][Status][Discuss]Description基因匹配(match)卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的DNA序列由无数种碱基排列而成(地球上只有4种),而更奇怪的是,组成DNA序列的每一种碱
Jaihk662
·
2020-07-04 06:35
#
数列
分块算法介绍(分块入门练习-1)
前言之前只了解分块,但没有深入学习.但之前集训时遇到http://codeforces.com/gym/100960/problem/G,当时现场
树状数组
没有调出来,赛后写出后上网搜其他方法,发现了一个奇妙的分块方法
Hardict
·
2020-07-04 05:14
分块算法
分块
Cow Sorting HDU - 2838
分析:其实这个结果和逆序数有关,对某个位置i,如果前面比他大的有x个,那么a[i]至少要加x次如果后面有y个比a[i]小,那么a[i]至少要加y次,也就是说用两个
树状数组
来分别维护当前
h_lizeming
·
2020-07-04 05:22
树状数组
[BZOJ3529][Sdoi2014]数表(莫比乌斯反演+
树状数组
)
题目描述传送门题解md刚开始读错题了本来不是很难的一道题被我搞的看起来不可能做出来?首先看看数表里的数都是啥实际上位置(i,j)上的数就是f(gcd(i,j)),其中f(i)表示i的约数和那么考虑一下怎么科学地求出来f约数和定理:若n=∏ipkii,其中pi为n的质因子,ki为质因子次数(正整数)那么n的所有约数的和为f(n)=∏i(∑j=0kipji)可以发现当(a,b)=1时f(ab)=f(a
Clove_unique
·
2020-07-04 05:13
题解
莫比乌斯反演
bit
省选
HDU-2838-Cow Sorting
思路:此题求逆序数的同时还要求逆序数的总和,对于s的逆序数个数可以用
树状数组
来求,再求s的逆序数的总和也可以用
树状数组
来解决Code:#include#includeusingnamespacestd;
z岁月无声
·
2020-07-04 04:40
HDU
树状数组
树状数组
的区间修改与区间查询
【题意】【分析】学了带懒标记的线段树后,这就并不难了。#include#include#include#definelllonglongusingnamespacestd;constintmn=100005;structseg{intl,r;lls,h;}t[mn>1;make_tree(ir||t[i].r>1;if(rmid){edit_tree(ir||t[i].r>1;llret=0;if
_tan45
·
2020-07-04 04:33
数据结构
[CQOI2006] 简单题 - 线段树/
树状数组
题目描述有一个n个元素的数组,每个元素初始均为0。有m条指令,要么让其中一段连续序列数字反转——0变1,1变0(操作1),要么询问某个元素的值(操作2)。例如当n=20时,10条指令如下:输入格式第一行包含两个整数n,m,表示数组的长度和指令的条数,以下m行,每行的第一个数t表示操作的种类。若t=1,则接下来有两个数L,R(L#include#include#include#include#inc
Bill_Yang_2016
·
2020-07-04 04:30
线段树
树状数组
[ZOJ2112][可持久化线段树(主席树)][
树状数组
]Dynamic Rankings[好题]
题意:给出一个序列,求区间第k小。要求支持单点修改。题解:不谈修改的时候,地球人都会做。主要考虑如何维护修改。如果直接在建好的线段树上修改,每次需要新建O(n)棵线段树,显然吃不消。请诸君一定要有一个思想,所谓“函数式线段树”,本质是“化‘树’为‘数’”,让“线段树”这一复杂的结构变得像“数字”一样可以加加减减。为什么区间第k大要用主席树做?因为我们要求区间内小于某一个数的数字个数。这显然是可加的
BenjaminPMLee
·
2020-07-04 04:24
OI
-
Data
Structure
持久化
结构
ZOJ
hdu 2838 Cow Sorting
树状数组
hdu2838------希望30号驾校科目一顺利考完,4月即将过去说好的30篇博客也没完成,真是忙起来就会烦躁什么都不想做,勿忘心安。。。。《CowSorting》这题本来兴高采烈的想用java做一遍,结果做出来之后无限超内存,真是啊,做题的时候java这种东西还是轻易不要动了。还有感觉要把数字都要离散化的,结果后台数据不需要离散化。题意:给一个n代表n个牛,然后再给n个数我觉得是n以内的数(包
Fleargwe
·
2020-07-04 04:48
树状数组
POJ2352 Stars
树状数组
裸题题目很给力,告诉我们输入是有序的,所以每个新输入的节点就只会对他之后输入并且x大于他的点造成影响,然后我们就可以
树状数组
单点加and区间求和就行了代码//ByAcerMo#include#include
AcerMo
·
2020-07-04 04:54
数据结构-树状数组
学习笔记: 进阶版
树状数组
(区间修改区间查询以及查询第K大元素)
导
树状数组
相信大家都很熟悉了,而今天我将会为大家带了一些更加全面的操作,并且欢迎补充哦。其实我想说的是,除了RMQ,线段树能做的,
树状数组
都能做。
星辰大少主
·
2020-07-04 03:18
模板
学习笔记/板子
数据结构
树状数组
高级数据结构板子
算法笔记&PAT总结
静态链表数学问题分数的四则运算素数质因子分解大整数运算排序插入排序归并排序堆排序搜索DFSBFS树二叉树的遍历多个结点BST并查集AVL树堆图图的遍历最短路动态规划最长回文子串01背包问题拓展分块思想
树状数组
题目
竹枝子
·
2020-07-04 03:46
LibreOJ--134--二维
树状数组
--平面修改+单点查询
这是一道模板题。给出一个n×mn×m的零矩阵AA,你需要完成如下操作:1abcdk:表示左上角为(a,b)(a,b),右下角为(c,d)(c,d)的子矩阵内所有数都自增kk;2xy:表示询问元素Ax,yAx,y的值;Input输入的第一行有两个正整数n,mn,m;接下来若干行,每行一个操作,直到文件结束。Output对于每个2操作,输出一个整数,表示对于这个操作的回答。样例输入2211122511
queque_heiyaa
·
2020-07-04 01:09
#
LibreOJ模板题
#
常用模板代码
题解 [联合省选 2020 A] 冰火战士(LOJ #3299 / 洛谷 P6619)【
树状数组
二分】
题目链接:洛谷P6619/LOJ#3299题意有两队人,分别为冰系和火系。每个人有所在队伍ttt、温度xxx、能量yyy。多次添加、删除人,询问每次操作结束后尽可能大的vvv,使得冰系所有温度不低于vvv的人的能量总和w1w_1w1与火系所有温度不高于vvv的人的能量总和w2w_2w2二者最小值最大,并输出2min(w1,w2)2\min(w_1,w_2)2min(w1,w2)。题解get新技能
破壁人五号
·
2020-07-04 01:33
题解
#
来源-各省省选
#
数据结构-树状数组
LibreOJ #10087. 「一本通 3.4 例 1」Intervals
其实就是区间选点问题啦,对于这类问题,我们的贪心策略肯定是让多个区间覆盖在一个点上,那么我们可以想到的就是按照末尾排序,在一个区间的末尾去加点,这样才能使一个点覆盖更多的点,然后就随便统计统计,如果想要优化,可以加
树状数组
来搞
那一条变阻器
·
2020-07-03 16:00
树状数组
(求前缀和、逆序对)
求前缀和:(求数组1~k个元素的和)注意:重要的查询关系k&(-k)#includeusingnamespacestd;//由原数组维护一个对应的
树状数组
voidbuild(inta[],intc[],
poppy_bei
·
2020-07-02 14:52
算法
CodeForces - 669E cdq分治
这题是学习cdq分治经测试的第一题,之前还有一道cdq分治和
树状数组
结合作为我学习的第一题,看了很久才看明白但是oj上没那题了。
mtxxxx
·
2020-07-02 12:04
分治
cf
算法导论 14.1-7 顺序统计树求逆序对 O(nlgn)
二、思考求逆序数中介绍了使用
树状数组
或归并排序求逆序对,这里使用顺序统计数。数组中某个数字s[i]的逆序数是指出现在s[i]之前,但是比s[i]大的数字的个数。
windmissing
·
2020-07-02 12:24
算法导论
Codeforces Round #627 (Div. 3) A,B,C,D题
附:官方题解传送门D.PairofTopics离散化+
树状数组
,O(2n*log(2n))的复杂度,实测运行841ms。
nefu_ljw
·
2020-07-02 09:37
ACM-网络赛/校赛
POJ3321:Apple Tree(
树状数组
)
DescriptionThereisanappletreeoutsideofkaka'shouse.Everyautumn,alotofappleswillgrowinthetree.Kakalikesappleverymuch,sohehasbeencarefullynurturingthebigappletree.ThetreehasNforkswhichareconnectedbybranc
键盘上的舞者
·
2020-07-02 08:14
树状数组
树状数组
模板及poj几道简单题
/*觉得真是…经历了高考啥都忘了(其实还是当初学得不踏实现在一点一点再重新来补吧(过了一年再来说这话的我*/参考资料及模板http://blog.csdn.net/lawrence_jang/article/details/8054173——Lawrence_Janghttp://blog.csdn.net/qq_21841245/article/details/43956633——MoeO3po
kkkkahlua
·
2020-07-02 06:00
poj
树状数组
模板
Juice Extractor(
树状数组
+ dp)
JuiceExtractorJerryloseshimselfintheinterestinggame:FruitNinja.FruitNinjaisagameofiPhoneandiPadinwhichtheplayerscutthefruitscomingfromthebottomofthescreenandgainthebonusfromcuttingmorethantwofruitswit
iteye_6881
·
2020-07-02 04:47
UVA
POJ2155 Matrix 题解(
树状数组
)
题目:POJ2155.题目大意:对一个n∗nn*nn∗n的矩阵支持:1.格式C x1 y1 x2 y2C\,x1\,y1\,x2\,y2Cx1y1x2y2,表示将左上角为(x1,y1)(x1,y1)(x1,y1),右下角为(x2,y2)(x2,y2)(x2,y2)的矩阵全部取反,即000变111,111变000.2.格
hezlik
·
2020-07-02 03:41
一维及二维数状数组模板
以前看
树状数组
总觉得很难,到现在看回来其实本质不过是一个简单的高校维护前缀和的小工具,也不必掌握差分,区间修改老老实实用线段数会比较直观。
huzujun
·
2020-07-02 03:31
acm
ACM_
状压DP
引言状压DP:状态压缩DP的缩写,用数字的进制(二进制居多)来表示问题的状态,用动态规划的思想不断后推,得到最后得到问题的解的一种解题技巧.本文将以:1.常用的关于状态的操作(放在前面方便以后查询)2.状态的解释3.与动态规划结合得到答案4.例题的方式介绍状压DP常用操作:意思表示方法空集0只含有第i个元素1>i&1)加入第i个元素s\1>1)|y;}//这个我没懂,不过拿来用没错PS:来自《挑战
fkjslee
·
2020-07-02 00:39
动态规划
BZOJ 1901 Zju2112 Dynamic Rankings
树状数组
套线段树
树状数组
!于是我们用
树状数组
套线段树,
树状数组
diezhan7052
·
2020-07-01 22:48
H - Skyscraper Gym - 102220H (
树状数组
)
题目链接:https://cn.vjudge.net/problem/Gym-102220H题目大意:懒得写了。。。,自己翻译吧具体思路:将整个数组转换成差分数组之后,就会发现所求的答案[l,r]就是a[l]+(b[l+1]~b[r])这段区间中非负的值的总和。AC代码:1#include2#include3#include4usingnamespacestd;5#definelllonglong
diaomeijiao3430
·
2020-07-01 22:15
Codeforces Round #624 (Div. 3) F Moving Points(离散化+
树状数组
)
F.MovingPointstimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputTherearennpointsonacoordinateaxisOXOX.Theii-thpointislocatedattheintegerpointxixiandhasaspeedv
hehedad
·
2020-07-01 20:31
数据结构
poj 3109 Inner Vertices(
树状数组
)
InnerVerticesTimeLimit:5000MSMemoryLimit:65536KTotalSubmissions:1692Accepted:446CaseTimeLimit:2000MSDescriptionThereisaninfinitesquaregrid.Someverticesofthegridareblackandotherverticesarewhite.Avertex
AC_way
·
2020-07-01 19:32
ACM—树状数组
hdu 1541 stars (
树状数组
)
由于是按y为第一关键字进行排序,前面的都在它的左面或下面,只需考虑在它前面有多少小于或等于x的,用
树状数组
做代码:#include#include#include#includeusingnamespacestd
AC_way
·
2020-07-01 19:00
ACM—树状数组
C++
树状数组
详解
引入如果给你n个数,然后进行q次询问,每次询问一个区间[x,y]的和,你会怎么做?第一种方法:最简单的方法,用数组存起来,每次枚举x-y,ans加起来就可以,时间复杂度O(qn),十分慢。第二种方法:或许大多数人会使用前缀和数组:sum[i]=a[1]+a[2]+…+a[i],所以求[x,y]只需要输出sum[y]-sum[x-1]即可,时间复杂度O(n),这是最快的方法之一了。但是,如果加上一个
and1403
·
2020-07-01 17:22
5067 Problem A 求第k大数
样例输入63123456样例输出4经验总结其实,这一题方法有很多,比如,
树状数组
,还有分块思
漫浸天空的雨色
·
2020-07-01 16:36
codeup
树状数组
处理含区间加操作的区间求和方法
题目:http://wikioi.com/problem/1082/思路:设某一数组f[x](初始f[x]={0})对于某一操作:对于区间[l,r]中所有数增加c,则f[l]+=c,f[r+1]-=c,则在任何情况下有pr[i]=(f[1]+f[2]+...+f[i])为a[i]在经过操作后的增加量则sum(l,r)=a[l]+...+a[r]增加量为delta=pr[l]+pr[l+1]+...
AmadeusChan
·
2020-07-01 15:31
【思维+
树状数组
】ZOJ-4117 BaoBao Loves Reading
题目链接:传送门参考博客:2019山东省赛zoj4117EBaoBaoLovesReading思维+
树状数组
【题意】:如果你学过操作系统,其实你就知道这个就是经典的调度算法的FIFO,先进先出算法。
Z_sea
·
2020-07-01 15:20
树状数组
c++
树状数组
1模板
原题这是一个模板,奇数点存本身值,偶数点根据其二进制中1的个数存2的n次方个值,这样改值用logn就可以了。#include#include#include#include#includeusingnamespacestd;intn,m,a[500009],c[500009];intchange(intpos,intv){for(inti=pos;i0;i-=i&(-i)){ans+=c[i];}
Tekim
·
2020-07-01 13:09
并查集
逆序对的求法(
树状数组
)
求法有两种,一种是归并排序,一种是
树状数组
。二者的时间复杂度都是O(n*logn),但
树状数组
更加好写。思路:开一个
树状数组
A记录每一个数出现的次数。
StarlitNight
·
2020-07-01 13:35
Codeforces Round #457(Div.2)Problem E Jamie and Tree(DFS序+倍增算法+LCA+
树状数组
)
E.JamieandTreetimelimitpertest2.5secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputToyoursurprise,Jamieisthefinalboss!Ehehehe.Jamiehasgivenyouatreewithnvertices,numberedfrom1t
Shili_Xu
·
2020-07-01 13:19
树状数组
LCA
树状数组
(逆序对)(模板)
举个例子加以说明:例子来源假设给定的序列为4321,我们从左往右依次将给定的序列输入,每次输入一个数temp时,就将当前序列中大于temp的元素的个数计算出来,并累加到ans中,最后ans就是这个序列的逆序数个数。序列的变化(下划线为新增加元素)序列中大于新增加的数字的个数操作{}0初始化时序列中一个数都没有{4}0往序列中增加4,统计此时序列中大于4的元素个数{43}1往序列中增加3,统计此时序
桂十三
·
2020-07-01 13:04
模板
算法
HDU-1166 敌兵布阵(分块/
树状数组
/线段树)
1≤n≤500001≤n≤50000思路练习数据结构的模板题,有三种比较基本的数据结构可以解决,分块、
树状数组
、线段树,这里逐一介绍。分块在我的理解中,分块并不是一种数据结构,而是一种思想。
Paulliant
·
2020-07-01 12:59
题目
珂朵莉的数列
树状数组
题目描述:给你一串数字序列,求所有区间的逆序对。解题分析:对于每一个逆序对,计算它的贡献,也就是所有包含这个逆序对的区间。用
树状数组
来维护,不过得先离散化。
时光ice
·
2020-07-01 12:23
树状数组
Codeforces-669E:Little Artem and Time Machine(CDQ分治)
所以无法简单的利用
树状数组
。仔细观察可以发现这些操作满足三维偏序(操作顺序,操作时间,操作种类)。其中操作顺序已排好序,我们要按操作顺序执行各个操作并完
Mitsuha_
·
2020-07-01 11:42
分治
训练日记8.18
树状数组
,看了看饶齐的blog,发现总结的知识点和写的东西相当好啊。关于
树状数组
,最基础的用法就是用来求第i的数字的前面有多少个比它大或者小的数。
joined
·
2020-07-01 10:43
随笔日记
Little Artem and Time Machine CodeForces - 669E (CDQ分治)
problemset/problem/669/E给你n个操作,共三种:1、op=1,在时间t添加一个数2、op=2,在时间t删去一个数3、op=3,查询在时间t这个数的出现次数三维偏序问题,CDQ可以解决,也可以二维
树状数组
直接搞
电竞杜兰特
·
2020-07-01 08:34
CDQ分治
GYM 102220 problem H Skyscraper
树状数组
将近一年前写的题目了又翻出来看看题目链接:HSkyscraper思路:用线段树维护差分数组设b[i]=a[i]-a[i-1]如果bi0说明完成i-1后至少还需要bi才能完成那么我们维护两个
树状数组
第一个
树状数组
维护的是差分数组
xtuls
·
2020-07-01 06:34
树状数组
差分
HDU - 5790 Prefix 求区间不同种数的变形
我们先看一个简单的问题给你一个数组q次询问每个询问给l和r问区间l到r有多少种不同的数这个可以离线
树状数组
,离线线段树,还可以莫队但是现在我要你在线解决那么就只能用主席树了还是那个套路我们建立第0棵树然后在
xtuls
·
2020-07-01 06:03
主席树
trie
上一页
41
42
43
44
45
46
47
48
下一页
按字母分类:
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
其他