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_树状数组
php递归生成无限极
树状数组
在生成多级
树状数组
之前,我们一般得到的数据结构如下[{"id":6,"parent_id":5,"name":"体育专题1","intro":"体育专题1111介绍",},{"id":5,"parent_id
Zeaone
·
2020-02-20 13:01
POJ3321 Apple Tree(
树状数组
)
这跟之前有一道求父节点中的节点个数很像,我们对这个树进行dfs,记录他开始的节点和最终的节点,这样只要在两个点之间做dfs就行了首先这不会破坏树的结构,其次,他还表示了每个节点间的相对关系,这是一种很常见的
树状数组
的技巧本篇代码需要用
Isomorphic
·
2020-02-17 22:00
ACM模板_axiomofchoice
动态规划多重背包最长不下降子序列LIS计算几何向量(结构体)平面集合基本操作二维凸包旋转卡壳最大空矩形|扫描法平面最近点对|分治最小圆覆盖|随机增量法三维向量(结构体)三维凸包几何杂项数据结构ST表单调队列
树状数组
线段树并查集左偏树珂朵莉树
axiomofchoice
·
2020-02-17 20:00
POJ2155 Matrix(
树状数组
)
根据武森的国家集训队论文我们知道,只需要在四个点插入值即可,之后用二维数组求和,因为矩阵上都是0和1,并且初始为0,我们只需计算他更改次数的奇偶次#include#include#include#include#include#include#include#include#includeusingnamespacestd;typedeflonglongll;constintN=1e5+10;in
Isomorphic
·
2020-02-17 09:00
LeetCode 307. Range Sum Query - Mutable
#include#include/***LeetCode307.RangeSumQuery-Mutable*区间求和,单点修改问题*其解决方法主要为
树状数组
和线段树**此代码使用
树状数组
**两点需要注意
冬瓜仁
·
2020-02-17 05:41
POJ-2299 Ultra-QuickSort(用
树状数组
求逆序对数)
题目链接ac代码#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#definempmake_pair#definepiacos(-1)#definepiipai
DIY-Z
·
2020-02-15 23:00
POJ-2299 Ultra-QuickSort(用
树状数组
求逆序对数)
题目链接ac代码#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#definempmake_pair#definepiacos(-1)#definepiipai
DIY-Z
·
2020-02-15 23:00
HDU-1754 I Hate It (
树状数组
模板题——单点更新,区间查询最大值)
题目链接ac代码(注意字符读入前需要注意回车的影响)#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#definempmake_pair#definepiaco
DIY-Z
·
2020-02-15 23:00
HDU-1754 I Hate It (
树状数组
模板题——单点更新,区间查询最大值)
题目链接ac代码(注意字符读入前需要注意回车的影响)#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#definempmake_pair#definepiaco
DIY-Z
·
2020-02-15 23:00
HDU-1166 敌兵布阵 (
树状数组
模板题——单点更新,区间求和)
题目链接AC代码:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#definempmake_pair#definepiacos(-1)#definepiipa
DIY-Z
·
2020-02-15 23:00
HDU-1166 敌兵布阵 (
树状数组
模板题——单点更新,区间求和)
题目链接AC代码:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#definempmake_pair#definepiacos(-1)#definepiipa
DIY-Z
·
2020-02-15 23:00
洛谷 P3810 【模板】三维偏序(陌上花开)(CDQ分治)
弄了接近一下午+一晚上)解题思路先对所有的点按照a-b-c的优先值从小到大排序,然后去重(注意要记录每一个有几个重复的,因为条件是小于等于,所以重复的对答案也有影响),然后再按照关键字b归并排序,排序过程中,用
树状数组
记录
尹昱钦
·
2020-02-15 22:00
康拓展开 & 逆康拓展开 知识总结(
树状数组
优化)
康拓展开:康拓展开,难道他是要飞翔吗?哈哈,当然不是了,康拓具体是哪位大叔,我也不清楚,重要的是我们需要用到它后面的展开,提到展开,与数学相关的,肯定是一个式子或者一个数进行分解,即展开。到底是什么样的式子才配的上这么高大尚的名字?其中,a[i]为整数,并且0#include#include#include#include#defineMOD998244353usingnamespacestd;t
RUCKYONE
·
2020-02-14 20:00
CF594D REQ [离线+
树状数组
,欧拉函数]
设\[x=\prod_{i=1}^{cnt}p_i^{k_i}[p_i\inprime]\]那么显然\[\varphi(x)=x*\frac{1}{\prod_{i=1}^{cnt}p_i}\]因为每个质数只会出现一次,所以当成数颜色,同[HH的项链],这题就没了//poweredbyc++11//byIsaunoya#include#definerep(i,x,y)for(registerint
_Isaunoya
·
2020-02-14 20:00
2020牛客寒假算法基础训练营day04 H-坐火车
2020牛客寒假算法基础训练营day04H-坐火车思路用
树状数组
维护\([L,R]\)区间的答案,每次回答完后\(O(logn)\)更新。具体怎么做呢?
zhaoxiaoyun
·
2020-02-13 05:00
2020牛客寒假算法基础集训营4 H- 坐火车 (桶,
树状数组
)
2020牛客寒假算法基础集训营4H-坐火车(桶,
树状数组
)链接:https://ac.nowcoder.com/acm/contest/3005/H来源:牛客网时间限制:C/C++1秒,其他语言2秒空间限制
茄子Min
·
2020-02-12 20:00
2020牛客寒假算法基础集训营4 H.坐火车(
树状数组
/线段树)
感觉网上的题解都略微简略包括官方题解,所以打算写一个尽可能详细的题目链接:https://ac.nowcoder.com/acm/contest/3005/H题意:每个车厢都有三个参数,colori,li,ri,询问对于每个车厢,在其两边的车厢有多少对车厢颜色相同,并且颜色的范围在[li,ri]内思路:首先我们定义几个数组,pre[i]代表整个数组的前缀中color[i]的个数,suf[i]代表整
overrate_wsj
·
2020-02-12 17:00
lost cows
这道题用
树状数组
做比较好,虽然
树状数组
能做的线段树也可以做到,但是
树状数组
更简洁方便,易操作原理便是第x个数的二进制数最后一个“1”,决定tree的结点的长度比如:sum[3]=tree[3]+tree
sos3210
·
2020-02-12 11:00
POJ3378 Crazy Thairs(
树状数组
+dp+高精度)
一道经典的
树状数组
老题,从题目中我们看出要求五元递增组,而普通
树状数组
只能求二元,我们我们考虑开五维
树状数组
来求取例如tr[3][x],就代表以x为结尾的三元递增组for(i=1;i#include#include
Isomorphic
·
2020-02-11 19:00
C++-POJ2352-Stars[数据结构][
树状数组
]
/*虽然题目没说,但是读入有以下特点由于,输入是按照按照y递增,如果y相同则x递增的顺序给出的所以,可以利用入读的时间进行降为处理*/于是我们就得到了一个一维的
树状数组
解法啦值得一提:坐标从0~32000
Jason-Cow
·
2020-02-10 19:00
C++-POJ2155-Matrix[数据结构][
树状数组
]
二维
树状数组
+叉分区间修改转化为单点修改单点查询本来就可视为区间查询于是本题可解PS:不知道为什么函数传参数,传的是变量就会出现奇奇怪怪的问题?
Jason-Cow
·
2020-02-10 13:00
Codeforces Round #609 (Div. 2)E--K Integers(贪心+二分+
树状数组
+逆序对)
KIntegers参考博客:https://blog.csdn.net/Q755100802/article/details/103664555【题意】给定一个1到n的排列,可以交换相邻的两个元素。现在定义一个函数f(x),表示在原排列中,通过交换操作,形成一个1,2,3....x的排列的子串,需要的最小操作步骤。子串意味着这个排列必须是相邻的。现在你需要求出f(1),f(2),f(3).....
Angle_yin
·
2020-02-10 11:00
BZOJ-1062: [NOI2008]糖果雨(二维
树状数组
)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1062首先把每个云抽象成一个点(x,y),表示该云在mod2len意义下到达最左端的时间为x和长度为y,那么我们发现统计的时候可以补成统计两块平行四边形的点,那么坐标转一下,对于每个平行四边形,分别把坐标轴旋转45度,这样就变成了矩形,可以方便的用BIT统计了。代码(细节超多,注意边界的重复):
AmadeusChan
·
2020-02-10 07:00
C++-HDU1394-Minimum Inversion Number[数据结构][
树状数组
]
给出0~n-1的一个排列,可以整体移动,求逆序对最小值把数字num[i]的加入,等价于
树状数组
的第n-num[i]位加1因为num[i]是第(n-1)-num[i]+1=n-num[i]大的数字,产生逆序对
Jason-Cow
·
2020-02-10 00:00
MooFest POJ - 1990
树状数组
和DisharmonyTreesHDU-3015神似//max(vi,vj)*|posi-posj|#include#include#includeusingnamespacestd;typedeflonglongll;#definemaxn20005inttr1[maxn],tr2[maxn];structtree{intpos,val;}Tr[maxn];//按照位置排序boolcmp(tre
晴屿
·
2020-02-09 21:00
C++-POJ3321-Apple Tree[数据结构][
树状数组
]
树上的单点修改+子树查询用dfn[u]和num[u]可以把任意子树表示成一段连续区间,此时结合
树状数组
就好了#include#include#include#include#include#include
Jason-Cow
·
2020-02-09 20:00
树状数组
求逆序对
P1908逆序对离散化+
树状数组
:AC_Code1#include2usingnamespacestd;3typedeflonglongll;4constintmaxn=500010;56inta[maxn
Angle_yin
·
2020-02-09 19:00
清北学堂—2020.1提高储备营—Day 2 afternoon(线段树、
树状数组
)
qbxtDay2afternoon——2020.1.18济南主讲:李佳实目录一览1.线段树2.二叉搜索树(略过)3.
树状数组
总知识点:基础数据结构(本人初学感觉好难)一、线段树1.描述:线段树是一种分治的思想
Pursue_Dreams
·
2020-02-09 17:00
A Simple Problem with Integers
ASimpleProblemwithIntegers这道题目只涉及区间修改以及区间查询,所以只要我们利用线段树或者
树状数组
进行优化,这道题就很容易解决了。
CADCADCAD
·
2020-02-09 14:00
Ultra-QuickSort POJ - 2299
树状数组
求逆序对
#include#include#include#includeusingnamespacestd;typedeflonglongll;constintN=5e5+10;intn;inta[N];inttr[N];intb[N];intc[N];intlowbit(intx){returnx&-x;}voidadd(intx,intc){for(inti=x;i>n,n){for(inti=1;i
晴屿
·
2020-02-08 23:00
Matrix Sum HihoCoder - 1336 二维
树状数组
感觉好像二维差分。
#include#includeusingnamespacestd;typedeflonglongll;constllmod=1e9+7;constintN=1005;llc[N][N];charop[5];intlowbit(intx){returnx&-x;}voidadd(intx,inty,intd){for(inti=x;i0;i-=lowbit(i))for(intj=y;j>0;j-
晴屿
·
2020-02-08 22:00
按钮控制彩灯实验 CSU - 1770
树状数组
差分变单点修改
#include#include#includeusingnamespacestd;constintN=100010;inta[N];inttr[N];intn,m;intl,r;intlowbit(intx){returnx&-x;}voidadd(intx,intc){for(inti=x;i<=n;i+=lowbit(i))tr[i]+=c;}intsum(intx){intres=0;fo
晴屿
·
2020-02-08 22:00
HDU5877 Weak pair
树状数组
+dfs
本题可以看出是算number的个数,重点是转化父子节点的关系,我们可以通过dfs来获得前面需要的节点注意的是,这个点加完计算后,一定要删除,不然会影响兄弟节点的计算#include#include#include#include#include#include#include#includeusingnamespacestd;typedeflonglongll;constintN=5e5+10;c
Isomorphic
·
2020-02-08 20:00
2020牛客寒假算法基础集训营3 G.牛牛的Link Power II(
树状数组
)
题意:给一个字符串,求所有1之间距离的和,之后给q组修改,每次把一个位置上的0改成1或者1改成0,求出每次修改之后的答案思路:设cnti为从1到i这段字符串中1的个数,sumi为从1到i中1位置的和假设修改的位置为i,这答案的改变值为[cnt(1-i)*i-sum(1-i)]+[sum(i+1-n)-i*cnt(i+1-n)]特别要注意取模的问题:(ans%mod+mod)%mod;#includ
overrate_wsj
·
2020-02-08 19:00
+
树状数组
——cf1288E
感觉自己的解法有点歪/*每次把一个数提到最前面,问整个过程结束后1..n每个数出现最靠前的位置和最靠后的位置最靠前:如果一个数被提前过,那么必然是1如果从来没被提前过,就是其原来的位置最靠后:维护数i每次被提前的时间序列time[i][]time[i][1]到time[i][2]之间出现不同元素的个数就是其在这一段时间内i最靠后的位置i出现的最靠后位置就是所有这种位置取max,再和初始值取max*
zsben
·
2020-02-06 21:00
一个简单的整数问题2
树状数组
线段树
地址https://www.acwing.com/problem/content/description/244/给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“Clrd”,表示把A[l],A[l+1],…,A[r]都加上d。2、“Qlr”,表示询问数列中第l~r个数的和。对于每个询问,输出一个整数表示答案。输入格式第一行两个整数N,M。第二行N个整数A[i]。接下来M行
等风
·
2020-02-06 21:00
「Luogu P3332」K大数查询
Luogu分析经典的整体二分题,这里是区间修改,所以用到的的
树状数组
也要是支持区间修改的,可以参考
树状数组
代码#include#defin
ihlwer
·
2020-02-06 20:00
KickStart 2019 Round H题解
实际很简单:通过
树状数组
维护大于x的总数。代码#include#includeusingnamespacestd;intN,M,tmp;intMAXN=1e5+10;ve
Minecode
·
2020-02-06 01:09
HDU5792 World is Exploding(
树状数组
+容斥原理)
根据对题目的观察,我们可以发现本题其实可以抽象成正序对和逆序对的个数的题目这就能让我们联想到使用
树状数组
来解决问题另外本题需要离散化,因为数据过大。
Isomorphic
·
2020-02-04 15:00
算法进阶
树状数组
略求一个数组\(A_1,A_2……A_n\)的逆序对数(
树状数组
做\(n≤100000,|A_i|≤10^9\)我们将\(A_1,...,A_n\)按照大小关系变成\(1...n\).这样数字的大小范围在
Sweetness
·
2020-02-02 22:00
Codeforces Round #182 (Div. 1) D. Yaroslav and Divisors
满足的pair只有$O(nlogn)$对,预处理一下每对的位置,然后离线每个询问,按右端点排序,遇到一个右端点就将所有满足的左端点在
树状数组
上+1,然后一个询问就用
树状数组
查询即可。
Mrzdtz220
·
2020-02-01 17:00
题解 P3372 【【模板】线段树 1】
题目刚刚学了
树状数组
的区间加法和区间求和操作,就用来水掉这题了本篇适合学会
树状数组
的人群前置芝士:普通
树状数组
差分
树状数组
【分析】学过
树状数组
的人都知道,我们对于一个数组,进行处理后,就可以在\(O(\
JustinRochester
·
2020-01-31 20:00
树状数组
求逆序对的应用
BIT-逆序对应用逆序对的定义:对于一个数列\[a_1,a_2,a_3,\cdots,a_n\]逆序对的个数是:\[\sum_{ia_j}1\]P1966火柴排队题目描述涵涵有两盒火柴,每盒装有n根火柴,每根火柴都有一个高度。现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:\(∑(a_i−b_i)^2\)其中\(a_i\)表示第一列火柴中第i个火柴的高度,\(b
gyro永不抽风
·
2020-01-31 16:00
Educational Codeforces Round 80 (Rated for Div. 2) E. Messenger Simulator
可以推出min[i]要么是i要么是1,当a序列中存在这个数是1max[i]的话就比较麻烦了首先对于i来说,如果还没有被提到第一位的话,他的max可由他后面的这部分序列中j>=i的不同数多少所决定,这个可以用
树状数组
解决其次就是两次被提到第一位的中间的空当
basasuya
·
2020-01-30 21:00
Educational Codeforces Round 80 (Rated for Div. 2) E. Messenger Simulator
可以推出min[i]要么是i要么是1,当a序列中存在这个数是1max[i]的话就比较麻烦了首先对于i来说,如果还没有被提到第一位的话,他的max可由他后面的这部分序列中j>=i的不同数多少所决定,这个可以用
树状数组
解决其次就是两次被提到第一位的中间的空当
basasuya
·
2020-01-30 21:00
BZOJ 3514: Codechef MARCH14 GERALD07加强版
一年前的寒假我应该是做过这题的不强制在线的版本(就是原题),当时的做法是离线+LCT+
树状数组
不过强制在线之后也大同小异,都是从时间戳和生成树的角度来考虑的考虑如果我们运气好整张图就是一个森林那么答案怎么算
hl666
·
2020-01-30 16:00
牛客练习赛56-C
思路:先依次预处理每个数字是第几大,然后依次按大小插入到
树状数组
中,每插入一个数判断现在数组中比当前数小的有多少个,逐层更新下去,更新到k层,把k层数值加起来即可#include#include#includeusingnamespacestd
sqsq
·
2020-01-30 13:00
树状数组
与线段树(三)
找规律题1.螺旋折线如下图所示的螺旋折线经过平面上所有整点恰好一次。对于整点(X,Y),我们定义它到原点的距离dis(X,Y)是从原点到(X,Y)的螺旋折线段的长度。例如dis(0,1)=3,dis(−2,−1)=9给出整点坐标(X,Y),你能计算出dis(X,Y)吗?输入格式包含两个整数X,Y。输出格式输出一个整数,表示dis(X,Y)。数据范围−109≤X,Y≤109输入样例:01输出样例:3
清风紫雪
·
2020-01-29 13:00
树状数组
与线段树(二)
树状数组
1.小朋友排队n个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。
清风紫雪
·
2020-01-28 15:00
树状数组
与线段树(一)
树状数组
:一共需要三个函数:①lowbit(intx)②add(intx,intp)③query(intx)1.动态求连续区间和给定n个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列[
清风紫雪
·
2020-01-27 15:00
上一页
44
45
46
47
48
49
50
51
下一页
按字母分类:
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
其他