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
CQOI2011
【
Cqoi2011
】【BZOJ3295】动态逆序对
Description对于序列A,它的逆序对数定义为满足iSolution树状数组一看到逆序对就要想到树状数组。维护每个数前面到目前有多少个比自己大。动态的思路因为要动态维护,每次只删掉一个数在逆序对中的贡献:及每个数前面有多少个比自己大,每个数后面有多少数比自己小。先预处理出每个数前面有多少个比自己大ll[i],每个数后面有多少个数比自己小rr[i]。很显然每次只用总答案删掉位置为i的数,答案就
Facico
·
2016-07-29 10:03
线段树
省选
可持久化线段树
树状数组
树套树
bzoj3295【
CQOI2011
】动态逆序对
3295:[
Cqoi2011
]动态逆序对TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 3122 Solved: 986[Submit][Status][Discuss
AaronPolaris
·
2016-05-14 00:07
树状数组
CDQ分治
OIer的狂欢
bzoj3295【
CQOI2011
】动态逆序对
3295:[
Cqoi2011
]动态逆序对TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 3122 Solved: 986[Submit][Status][Discuss
AaronGZK
·
2016-05-14 00:00
树状数组
bzoj
cdq分治
树套树
BZOJ3295
CQOI2011
动态逆序对 树状数组套线段树
离线倒着做,每次加入一个节点后新增的逆序对数量就是其左边大于它的数的个数(左边数的总数-左边小于它的数的个数)+右边小于它的数的个数用树状数组维护求和,对于树状数组中每个节点v所对应的区间线段树维护区间[l,r]中大于v的数的个数。最后唯一的问题就是指针版线段树MLE……#include #include #include #include #include usingnamespacestd;
WDZRMPCBIT
·
2016-05-10 23:00
bzoj 3295: [
Cqoi2011
]动态逆序对 【cdq分治】
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3295题意:中文题分析:我们先预处理出每个数为逆序对做出的贡献多少,可以分成和前面或后面的数组成逆序对个数,删除的时候减去这些贡献就行了?显然不是,应为对于一个逆序对a,b,删除a的是时候减去了他的贡献,然后再删除b时重复删除了贡献。那么我们得找出方法把减得加回来,设删除的数为x,在数组的位置为
u012483216
·
2016-05-04 22:00
bzoj 3295: [
Cqoi2011
]动态逆序对(树套树)
3295:[
Cqoi2011
]动态逆序对TimeLimit:10SecMemoryLimit:128MBSubmit:3046Solved:970[Submit][Status][Discuss]Description
clover_hxy
·
2016-04-28 15:43
树套树
bzoj 3295: [
Cqoi2011
]动态逆序对(树套树)
3295:[
Cqoi2011
]动态逆序对TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 3046 Solved: 970[Submit][Status][Discuss
clover_hxy
·
2016-04-28 15:00
[BZOJ3295][
Cqoi2011
]动态逆序对(树状数组套线段树||cdq分治)
题目描述传送门题解树状数组套线段树。向序列里插入点显然要比删点方便很多。首先知道一个点对整个序列的逆序对的贡献其实是这个点前面有多少个比它大的点加上后面有多少个比它小的点。利用树状数组求前缀和的特点可以求出这个点前面有多少个比它小的点和后面有多少个比它小的点,再用区间中的点减一下即可。那么用线段树来解决区间问题。线段树表示当前树状数组所代表的范围中元素的个数。那么查询的时候只需要在求前缀的时候把一
Clove_unique
·
2016-04-28 14:29
题解
线段树
bit
省选
树套树
cdq分治/整体二分
[BZOJ3295][
Cqoi2011
]动态逆序对(离线+树状数组套线段树)
题目描述传送门题解树状数组套线段树。向序列里插入点显然要比删点方便很多。首先知道一个点对整个序列的逆序对的贡献其实是这个点前面有多少个比它大的点加上后面有多少个比它小的点。利用树状数组求前缀和的特点可以求出这个点前面有多少个比它小的点和后面有多少个比它小的点,再用区间中的点减一下即可。那么用线段树来解决区间问题。线段树表示当前树状数组所代表的范围中元素的个数。那么查询的时候只需要在求前缀的时候把一
Clove_unique
·
2016-04-28 14:00
线段树
树状数组
bzoj
CQOI
bzoj3295[
Cqoi2011
]动态逆序对(cdq分治||可持久化线段树)
3295:[
Cqoi2011
]动态逆序对TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 3043 Solved: 967[Submit][Status][Discuss
u014325920
·
2016-04-25 22:00
主席树
cdq分治
可持久化线段树
bzoj3295: [
Cqoi2011
]动态逆序对
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3295题意:中午题。分析:本来打算练习cdq分治的,明天补吧。不过看到这题一眼就想用可持久化线段树,不过带修改的可持久化线段树开销有点大,变了一种方法卡了点空间才过。详见代码。O(nlogn*logn)。cdq写法补了,分析和代码在下面。代码:#include #include #include
Fsss_7
·
2016-04-24 23:00
cdq分治
可持久化线段树
【BZOJ3294】[
Cqoi2011
]放棋子【计数DP】
【题目链接】设g[k][i][j]表示第k种颜色恰好占据了i行j列,即没有一行或一列是空的。那么有g[k][i][j]=C[i*j][cnt[k]]-∑(g[k][x][y]*C[i][x]*C[j][y]),注意1 #include usingnamespacestd; typedefunsignedlonglongULL; constintmaxn=35,maxc=12,maxm=905
BraketBN
·
2016-04-09 17:00
计数dp
【bzoj3295】[
Cqoi2011
]动态逆序对 树状数组套主席树
Description对于序列A,它的逆序对数定义为满足iInput输入第一行包含两个整数n和m,即初始元素的个数和删除的元素个数。以下n行每行包含一个1到n之间的正整数,即初始排列。以下m行每行一个正整数,依次为每次删除的元素。Output输出包含m行,依次为删除每个元素之前,逆序对的个数。SampleInput54153425142SampleOutput5221样例解释(1,5,3,4,2)
DQSSS
·
2016-04-05 21:59
树状数组
===数据结构===
树套树
主席树
【bzoj3295】[
Cqoi2011
]动态逆序对 树状数组套主席树
Description对于序列A,它的逆序对数定义为满足iInput输入第一行包含两个整数n和m,即初始元素的个数和删除的元素个数。以下n行每行包含一个1到n之间的正整数,即初始排列。以下m行每行一个正整数,依次为每次删除的元素。Output输出包含m行,依次为删除每个元素之前,逆序对的个数。SampleInput54 1 5 3 4 2 5 1 4 2 SampleOutput
LOI_DQS
·
2016-04-05 21:00
【BZOJ3293】[
Cqoi2011
]分金币【绝对值不等式】【中位数】【数形结合】
【题目链接】同【BZOJ1045题解】/*Pigonometry*/ #include #include usingnamespacestd; typedeflonglongLL; constintmaxn=1000005; intn,num[maxn]; LLC[maxn],M; inlineintiread(){ intf=1,x=0;charch=getchar(); for(;c
BraketBN
·
2016-04-03 23:00
【CDQ分治】[
CQOI2011
][NKOJ2041]动态逆序对
题目描述Description对于序列A,它的逆序对数定义为满足iAj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。Input输入第一行包含两个整数n和m,即初始元素的个数和删除的元素个数。以下n行每行包含一个1到n之间的正整数,即初始排列。以下m行每行一个正整数,依次为每次删除的元素。Output输出包含m行,依
JeremyGJY
·
2016-02-19 09:00
算法
cdq分治
动态逆序对
CQOI2011
nkoj
[bzoj3295] [
Cqoi2011
]动态逆序对
数据似乎对不会cdq分治的选手极其不友好?。。。。。没错说的就是我这种上来就写树套树的傻逼>__ 2#include 3#include 4#definelllonglong 5usingnamespacestd; 6constintmaxn=100023; 7intrt[262333],size,L[262333],R[262333]; 8intsz[maxn*19],lc[max
czllgzmzl
·
2016-02-08 00:00
[BZOJ3295] [
Cqoi2011
]动态逆序对 (树套树)or(CDQ分治)
题意:N个数的排列,M次操作,每次求当前的逆序对数量并删掉一个数。先说一下cdq分治做法。(5960kb,1.4s)网上很多题解,我都看不懂(其实很多人的程序几乎是一样的,就改了一下变量名),然后就自己硬着头皮想了这道题,基本是独立做出来的,做出来之后竟然1A,简直愉快。不过我太辣鸡了想了半天才发现这本质上是一个三维偏序,分别是时间,下标,数值,记为(t,x,y)。我们可以把删除的过程倒过来,当做
u011542204
·
2016-01-23 22:00
bzoj3295: [
Cqoi2011
]动态逆序对 树状数组套线段树
题目bzoj3295Description对于序列A,它的逆序对数定义为满足iAj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。Input输入第一行包含两个整数n和m,即初始元素的个数和删除的元素个数。以下n行每行包含一个1到n之间的正整数,即初始排列。以下m行每行一个正整数,依次为每次删除的元素。Output输出
zmh964685331
·
2016-01-21 21:00
3295: [
Cqoi2011
]动态逆序对
白书有言:事实上,借助于分治法和Fenwick树,本题可以用更短的代码在更短的运行时间内解决。当时一直不明白啊,于是就放弃了,反正树套树我也不会(摊手)。今天突然想到,啊这不就是CDQ分治吗。整体二分是二分答案,CDQ分治是二分操作。于是就乱搞一下。先算出初始序列的逆序对数,顺便算一下每个点的数所成的逆序对数,然后在操作的时候删除。由于删除的时候会把同一个逆序对删两次,所以还要加上之前重复删掉的,
nlj1999
·
2015-12-16 09:00
【
CQOI2011
】动态逆序对 BZOJ3295
Description 对于序列A,它的逆序对数定义为满足 i< j,且A i>A j的数对( i, j)的个数。给1到 n的一个排列,按照某种顺序依次删除 m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。 Input 输入第一行包含两个整数 n和 m,即初始元素的个数和删除的元素个数。以下 n行每行包含一个1到 n之间的正整数,即
·
2015-11-12 22:37
ZOJ
BZOJ 3295 [
Cqoi2011
]动态逆序对 树状数组套线段树
题意:链接方法:树状数组套线段树解析:这题基本上写的都是什么CDQ点分治,主席树之类的,然而这我都并不会,所以写了一发平衡树套线段树想卡时卡过去,然而我并没有得逞,T的不要不要的,这里用平衡树套线段树的方法参见我的题解:排队。这道题比那道更要简单。然后我就打算弃坑了~不过看140142做这道题做的热火朝天的,还是打算回来做一下,yy下树状数组套线段树,然后去看hz的题解,只看懂他写理论部分了,代码
wzq_QwQ
·
2015-07-09 14:00
【BZOJ 3293】 [
Cqoi2011
]分金币
3293:[
Cqoi2011
]分金币TimeLimit:10SecMemoryLimit:128MBSubmit:651Solved:345[Submit][Status][Discuss]Description
Regina8023
·
2015-04-20 08:00
OI
bzoj
思路题
【
CQOI2011
】【BZOJ3295】动态逆序对
Description对于序列A,它的逆序对数定义为满足iAj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。Input输入第一行包含两个整数n和m,即初始元素的个数和删除的元素个数。以下n行每行包含一个1到n之间的正整数,即初始排列。以下m行每行一个正整数,依次为每次删除的元素。Output输出包含m行,依次为删除
CreationAugust
·
2015-04-09 10:00
cdq分治
【BZOJ 3295】 [
Cqoi2011
]动态逆序对
3295:[
Cqoi2011
]动态逆序对TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 1373 Solved: 465[Submit][Status][Discuss
Regina8023
·
2015-04-02 15:00
树状数组
OI
bzoj
cdq分治
[BZOJ 3295]
Cqoi2011
动态逆序对
最先的想法就是一开始把整个数列建成主席树,在树上搞搞搞搞(你懂的)。。。。想玩就去写,然后发现——MLE再仔细看题,发现“N #include #include usingnamespacestd; #definelowbit(x)((x)&(-(x))) constintMaxn=8000000; typedeflonglongLL; LLans[50005]; intT[100005],po
Zeyu_King
·
2015-02-26 20:00
主席树
【BZOJ 3294】[
Cqoi2011
]放棋子
3294:[
Cqoi2011
]放棋子TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 408 Solved: 137[Submit][Status]DescriptionInput
Regina8023
·
2015-01-10 17:00
dp
OI
bzoj
bzoj3295(线段树套平衡树(treap))
3295:[
Cqoi2011
]动态逆序对TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 861 Solved: 287[Submit][Status]Description
cq_phqg
·
2014-09-02 17:00
ACM
bzoj
主席树初探 & bzoj 3295: [
Cqoi2011
] 动态逆序对 题解
【原题】3295:[
Cqoi2011
]动态逆序对TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 778 Solved: 263[Submit][Status]Description
u013724185
·
2014-07-02 18:00
题解
树状数组
bzoj
主席树
权值线段树
【BZOJ】【P3295】【
CQOI2011
】【动态逆序对】【题解】【树套树】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3295用树状数组套平衡树统计逆序对,每加入一个数就统计在它前面比他大+在他后面比他大,可以离线,逆序加入数字,可以更快一点,PS:线段树常数真心不能看……Code:#include #include #include #include #definelsoni='0'){ res*=10;re
u012732945
·
2014-05-05 11:00
bzoj
省选
上一页
1
2
下一页
按字母分类:
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
其他