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
线段树&树状数组
【KTU Programming Camp (Day 3)】Queries
http://codeforces.com/gym/100739/problem/A按位考虑,每一位建一个
线段树
。求出前缀xor和,对前缀xor和建
线段树
。
线段树
上维护区间内的0的个数和1的个数。
as2886089
·
2020-08-24 05:35
bzoj3211 花神游历各国
线段树
题目大意:维护一个长度为n的序列,支持一下两个操作:1、区间开根号(向下取整);2、区间求和。n#include#include#defineN120000#definels(c)(c>1;build_tree(ls(c),l,mid);build_tree(rs(c),mid+1,r);seg[c].sum=seg[ls(c)].sum+seg[rs(c)].sum;seg[c].mark=se
Todobe
·
2020-08-24 05:16
bzoj
线段树
数据结构
蒟蒻名曰Starria-博客两周年纪念
Starria看向两年前的一棵
线段树
,一棵不会卡常也没有压行的,朴素的模板
线段树
。它有着曾在光标跳跃间重现过无限次的熟悉结构。它有着独属于某段一无所知又无所畏惧时光的陌生模样。
Starria
·
2020-08-24 05:12
OI
「NOIP2017」列队 //
线段树
题解//
树状数组
的做法我不会呀写一写暴力一些的做法吧维护每一行和最后一列,于是需要实现的操作就变成了找到并删掉第k个数、把一个数
Starria
·
2020-08-24 05:12
线段树
【题解】Luogu P5471 [NOI2019]弹跳
subtask1:暴力\(O(nm)\)枚举,跑最短路subtask2:吧一行的点压到vector中并排序,二分查找每一个弹跳装置珂以到达的城市,跑最短路subtask3:看见是一个链,自然而然的可以想到
线段树
优化建图
weixin_30292745
·
2020-08-24 05:27
四分树
1013:【模板】四分树(二维
线段树
/二维
树状数组
)时间限制:4Sec内存限制:512MB提交:4解决:2[提交][状态][讨论版][命题人:stone41123][Edit][TestData]题目描述给定一个
stone41123
·
2020-08-24 05:54
奇妙的四分树
[NOI2019]弹跳 [四分树+dijsktra]
传送门打模拟赛只会
线段树
优化建图,于是只有72分后来问ldx神仙学长,他说是个叫四分树的东西,我一脸懵逼?他说
线段树
是一分为2,四方树是把一个矩阵一分为4我想了想,好有道理啊!
FSYo
·
2020-08-24 05:49
FSY的好题汇总
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
数据结构
线段树
模板
参考模板题目#include#include#include#include//#definelllonglong//#defineMAXN1000010#defineINF0X3f3f3f3f#include#include#include#includetypedeflonglongll;constintMAXN=1e6+10;constllmod=1000000007;constllinf=
至尊宝_water
·
2020-08-23 21:10
模板
ACM暑期集训
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
FZU 2236 第十四个目标 (
线段树
)
pid=2236思路:每次找到当前第i个数之前有多少个比第i个数小的数,将前边的情况累加起来并且加上1
线段树
查找,离散化#include#include#include#include#include#
_大太阳_
·
2020-08-23 20:21
线段树
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
树状数组
线段树
的点修改+区间查询+区间修改
D-敌兵布阵题目描述C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中央情报局要研究敌人究竟
青苹果红苹果
·
2020-08-23 19:06
c++
【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
牛客网25 b题+最长连续上升区间+
线段树
、思路:开始拿到题准备用
线段树
的,维护区间的最长连续上升区间,但是区间合并时无法维护。后来NYX在网上找到了模板,
线段树
做的,(还是要多做题),当时这道题A了,自己也
H_ang
·
2020-08-23 18:00
线段树
poj3667 Hotel (
线段树
区间合并)
链接:http://poj.org/problem?id=3667题意:n个连续的房间m个操作。操作分两种,第一种以1x形式给出,找到最左的能连续容下x个人的连续房间,并输出左端点的编号,如果找不到就输出0.第二种以2lx的形式给出,表示以l为起点的x个房间都清空。查询的时候要能直接获取区间的最大连续空房间,这样就能判断能不能连续放下这x个人,但这样还确定不了具体放哪。放的位置有三种情况1.放在左
yjCola
·
2020-08-23 16:29
线段树
poj 3468 A Simple Problem with Integers(
线段树
成段更新,延迟标记,Lazy)
id=3468
线段树
成段更新,延迟标记一般用到成段更新的时候都需要延迟标记,这个题用来Lazy入门很不错,主要就是掌握如何向上更新,向下更新#include#include#defineMAXN100005structnode
yjCola
·
2020-08-23 16:29
线段树
【
树状数组
】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
线段树
求最长连续上升子序列
//#include#include#include#includeusingnamespacestd;structNode{intPre,Suf;intPreSize,SufSize,SumSize,Size;intLeft,Right;};structNodeSegTree[100005];intc[100005]={0};voidBuilt(intk,intL,intR){SegTree[k
WitheredLotus
·
2020-08-23 16:16
C语言基本算法
【做练习】最大上升子序列(
树状数组
)
树状数组
的原理及应用详解
1.题目总时间限制:1000ms内存限制:65536kB描述一个数的序列bi,当b1k2>...>kmk_1>k_2>...>k_mk1>k2>...>km则A[1:i]A[1:i]A[1:i]的求和即可写为C[2k1]+C[2k1+2k2]+...+C[2k1+2k2+...+2km]C[2^{k_1}]+C[2^{k_1}+2^{k_2}]+...+C[2^{k_1}+2^{k_2}+...+
埃蒙女王
·
2020-08-23 15:39
BZOJ3173: [Tjoi2013]最长上升子序列 Treap+
树状数组
BZOJ3173:[Tjoi2013]最长上升子序列TimeLimit:10SecMemoryLimit:128MBSubmit:1505Solved:784[Submit][Status][Discuss]题解:先用平衡树完成所有的插入操作,中序遍历的平衡树就是我们最后得到的序列,用f[i]表示以位置i为结尾的最长上升子序列是多少(nlogn)。因为后面插入的数越来越大,可以发现每个数在插入时所
Oakley_
·
2020-08-23 15:33
【
线段树
】
线段树
一、基本内容
线段树
,本质是一个完全二叉树。
Lxd2121
·
2020-08-23 15:46
[
树状数组
求第K大][BZOJ 3173][TJOI 2013]最长上升子序列
而这样子就可以用
树状数组
维护,首
D_William
·
2020-08-23 15:50
fzoj 2236 第十四个目标 (
树状数组
&LIS&dp)好题
Problem2236第十四个目标Accept:14Submit:26TimeLimit:1000mSecMemoryLimit:32768KBProblemDescription目暮警官、妃英里、阿笠博士等人接连遭到不明身份之人的暗算,柯南追踪伤害阿笠博士的凶手,根据几起案件现场留下的线索发现凶手按照扑克牌的顺序行凶。在经过一系列的推理后,柯南发现受害者的名字均包含扑克牌的数值,且扑克牌的大小是
没有能与不能只有想与不想
·
2020-08-23 15:11
FZOJ
LIS.(最长上升子序列)
树状数组
好题
树链基础知识
“在一棵树上进行路径的修改、求极值、求和”乍一看只要
线段树
就能轻松解决,实际上,仅凭
线段树
是不能搞定它的。我们需要用到一种貌似高级的复杂算法——树链剖分。树链,就是树上的路径。
bao___zi
·
2020-08-23 09:53
ACM算法
树链
100035. 【NOIP2017提高A组模拟7.10】区间
100097969983514116685052333SampleOutputsample1:4sample2:1749769DataConstraintSolution对于20%的数据可以n2n2暴力,对于70%的数据可以用
线段树
维护区间的乘积
lazy-sheep
·
2020-08-23 09:04
题目
分块
洛谷P1471 方差(
线段树
lazy维护区间平均数和区间方差)
题意:传送门题解:三种操作:一是区间加,使用lazy操作即可完成,而是平均数,使用区间加维护,三是区间方差,将公式展开,发现s2=1n∗(∑i=xi=yai2−2∗a‾∗∑i=xi=yai+(y−x+1)∗a‾)s^2=\frac{1}{n}*(\sum_{i=x}^{i=y}a_{i}^2-2*\overline{a}*\sum_{i=x}^{i=y}a_{i}+(y-x+1)*\overlin
肘子zhouzi
·
2020-08-23 08:49
线段树
暑假集训test-8-29
T1傻逼题,但是我傻逼地敲了一个
线段树
合并,然后把空间炸了,只剩20分,直接dfs维护子树大小,子树中最大最小值即可统计答案。
weixin_30871701
·
2020-08-23 07:35
bzoj 1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛【dp+
树状数组
+hash】
最长上升子序列。虽然数据可以直接n方但是另写了个nlogn的转移:f[i]=max(f[j]+1)(a[j]#includeusingnamespacestd;constintN=5005;intn,a[N],f[N],ans;intread(){intr=0,f=1;charp=getchar();while(p>'9'||p='0'&&pf[i])f[i]=f[j]+1;ans=max(ans
weixin_30703911
·
2020-08-23 07:22
2019暑期训练
牛客多校:ABCDEFGHIJ第一场题解笛卡尔树(不会)/单调栈数学推公式暴力DP数学推公式线性基
线段树
+动态规划水题通过情况√√√√√√待补√第二场爆搜单调栈通过情况√√第三场通过情况第四场通过情况第五场题解签到快速幂简单
weixin_30622181
·
2020-08-23 07:45
AtCoder Regular Contest 075 E - Meaningful Mean
树状数组
求顺序对, 前缀和
题目链接:http://arc075.contest.atcoder.jp/tasks/arc075_c题意:给你一个序列和一个数k,求有多少对l,r,使得a[l]+a[l+1]+...+a[r]的算术平均数大于等于k1≤N≤2×10^51≤K≤10^91≤ai≤10^9思路:首先对于所有数减去k,这样就不用除(r-l+1),然后我们发现所求的就是有多少对l,r,使得sum[r]-sum[l-1]
weixin_30535043
·
2020-08-23 07:08
树状数组
求区间和(区间均值)
1658:O__O"…就是那道中文题TimeLimit:1SecMemoryLimit:128MB[Submit][Status][WebBoard]Description有一天某人得到了一组数据,然后烦人的是,有位同学老是询问某一段区间[L,r]范围的平均值(只要整数部分)==。某人无法解决,向你求救、Input多组测试,处理到文件末尾。一行一个n,m(n,m#includeusingnames
tb_youth
·
2020-08-23 07:28
zcmu
树状数组
NOIP模拟(11.07)T3 小店购物
小店购物题目背景:11.07NOIP模拟T3分析:
线段树
+multiset这道题让我发现了自己的智障······set是会去重的,然后我塞了一模一样的东西进去然后删了很多次,还没有判end,然后就开心的去删掉了
scarlyw
·
2020-08-23 07:55
NOIP解题报告
multiset
线段树
洛谷 P3373
线段树
2——致卑微的我
谨以此片博客记录一上午的debug#include#include#include#definelsonl,m,rt>1;node[rt>1;Build(lson);Build(rson);pushUp(rt);}voidupdateMul(intL,intR,intk,intl,intr,intrt){//if(r>1;//pushDown(l,r,rt);if(Lm){updateMul(L,
一颗牙疼_
·
2020-08-23 07:28
数据结构
noip膜你赛day2 总结
先膜拜一遍gen4512大牛然后是总结:第一题,没有选择
线段树
,因为我并没有想到要去验证azui具有结合律,不过交换率倒是去验证过,很显然失败了,但后面我找到一个规律,于是前缀和直接搞定。成功AC。
Thyhhhhhh
·
2020-08-23 06:16
考试题目
bzoj2962 序列操作
线段树
题意:一段序列,三种操作:1.Iabc表示将[a,b]这一段区间的元素集体增加c,2.Rab表示将[a,b]区间内所有元素变成相反数,3.Qabc表示询问[a,b]这一段区间中选择c个数相乘的所有方案的和mod19940417的值。一开始没看到k#include#include#definefo(i,a,b)for(inti=a;i=b;i--)usingnamespacestd;constint
Transcendence_magia
·
2020-08-23 06:29
bzoj
线段树
Atcoder Regular contest 085F NRE
线段树
+DP
题意:给你两个序列,a全部为0,b给出,给出一些区间,可以把a上的这些区间变为全1,要求操作以后两个序列对应位置不相同的个数最小,n#include#include#include#definepbpush_back#definefo(i,a,b)for(inti=a;i=b;i--)usingnamespacestd;intn,m;constintinf=2e9;constintN=2e5+5;
Transcendence_magia
·
2020-08-23 06:29
Atcoder
DP
线段树
我的算法模板(带分析博客)
(以下模版均有其对应的分析博客,点击标题即可跳转)数据结构篇1.并查集2.字典树3.
线段树
与
树状数组
4.ac自动机5.大根堆算法篇1.KMP算法2.素数处理3.gcd与扩展gcd4.二分查值法(1).最大化最小值
onlysky_yy
·
2020-08-23 06:35
算法
数据结构
算法与数据结构
树状数组
区间求和与区间最值
//
树状数组
区间求和//修改的时间复杂度为O(logn)查询的时间复杂度为O(logn)。/*lowbit函数这个函数的功能就是求某一个数的二进制表示中最低的一位1。
lang_a
·
2020-08-23 06:54
【BZOJ4025】二分图(可撤销并查集+
线段树
分治)
题目:BZOJ4025分析:定理:一个图是二分图的充要条件是不存在奇环。先考虑一个弱化的问题:保证所有边出现的时间段不会交叉,只会包含或相离。还是不会?再考虑一个更弱化的问题:边只会出现不会消失。当加边的时候,若(u,v)(u,v)(u,v)不连通:一定不会构成奇环,将它加入。若(u,v)(u,v)(u,v)已经联通,则不加入这条边,而是查询uuu和vvv两点间的距离。若为偶数则加上这条边后会形成
Inspector_Javert
·
2020-08-23 05:12
数据结构
分治
【P1471 方差】 区间加 区间求平均数 区间求方差
*a[l]+a[l+1]*a[l+1]+…a[r]*a[r])/(r-l+1)-((a[l]+a[l+1]+…+a[r])/(r-l+1))^2然后我们只要维护一个a[i]的平方维护一个a[i]然后用
线段树
去操作就可以实现了
ljq--linuxer
·
2020-08-23 05:02
ACM
DS-线段树
Noip 训练指南
BZOJ2535数据结构[]luog2572[SCOI2010]序列操作[]luogu2184[]cf620ENewyeartree[]GSS1[]GSS3[]GSS4[]HDU6315[]luogu2073[x]
线段树
dieloupi0136
·
2020-08-23 05:31
树状数组
从入门到入土
1.友好入门:我们为什么使用
树状数组
?(参考了http://hzwer.com/914.html)如果给定一个数组,要你求里面所有数的和,一般都会想到累加。
ddeneijvu948663112
·
2020-08-23 05:24
c/c++
数据结构与算法
上一页
43
44
45
46
47
48
49
50
下一页
按字母分类:
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
其他