
数据结构
文章平均质量分 86
码代码的猿猿的AC之路
人一我百,人十我万追逐青春的梦想,怀着自信的心,永不放弃
展开
-
CodeForces 366D Dima and Trap Graph
D. Dima and Trap Graphtime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputDima and Inna love spending time tog原创 2013-11-26 13:57:44 · 1476 阅读 · 0 评论 -
ZOJ 3686 A Simple Tree Problem
A Simple Tree ProblemTime Limit: 3 Seconds Memory Limit: 65536 KBGiven a rooted tree, each node has a boolean (0 or 1) labeled on it. Initially, all the labels are 0.We define this ki原创 2013-11-12 17:57:52 · 1035 阅读 · 0 评论 -
UESTC 1546 Bracket Sequence
线段树,把左右括号标记成-1,1。。。合法的区间的总和为零,且从左向右的累加和 小于等于 0维护每个结点的sum max,为方便reserv再多维护一个min reserv时交换max,min的绝对值再成-1set与reserv并存时,要先reserv再setBracket SequenceTime Limit: 3000MS Memory Li原创 2013-11-12 21:18:16 · 1326 阅读 · 0 评论 -
CodeFocrces 369E. Valera and Queries
E. Valera and Queriestime limit per test2 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputValera loves segments. He has recentl原创 2013-12-05 22:40:13 · 1613 阅读 · 0 评论 -
Codeforces 380 C. Sereja and Brackets
树状数组求区间内范围个数。。。。C. Sereja and Bracketstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputSereja has原创 2014-01-16 14:26:59 · 1670 阅读 · 0 评论 -
HDOJ 1542 Atlantis
扫描线+线段树 求矩形面积并AtlantisTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5753 Accepted Submission(s): 2528Problem Descript原创 2014-01-26 11:48:08 · 1507 阅读 · 0 评论 -
POJ 1177 Picture
扫描线+线段树=矩形面积并和求周长并差不多,线段树节点维护覆盖长度,线段分段数,是否覆盖,左右端点是否覆盖(判断线段分段数用 right.num+left.num-left.rb*right.lb)。一次扫描直接求出周长。。。(当然也可以求一遍x边长,再求一遍y边长。。。。这样简单的多)线段排序时要注意Y相同时让左边的边在前,这样就解决重边问题了Picture原创 2014-01-27 17:36:11 · 1469 阅读 · 0 评论 -
HDOJ 3308 LCIS
LCISTime Limit: 6000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3392 Accepted Submission(s): 1510Problem DescriptionGiven n integers.Yo原创 2014-01-28 22:52:29 · 1303 阅读 · 0 评论 -
HDOJ 4122 Alice's mooncake shop
用单调队列维护一个每天的最低单价。。。Alice's mooncake shopTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2663 Accepted Submission(s): 645Pro原创 2014-02-21 21:24:20 · 1575 阅读 · 0 评论 -
【转】树状数组求区间和的一些常见模型
这一篇树状数组总结的非常全面。。。树状数组求区间和的一些常见模型Posted on 2011-03-19 19:53 Mato_No1 阅读(925) 评论(1) 编辑 收藏 引用 所属分类: 树状数组 树状数组在区间求和问题上有大用,其三种复杂度都比线段树要低很多……有关区间求和的问题主要有以下三个模型(以下设A[1..N]为一个长为N的序列,初始值为全0):(转载 2014-02-12 22:57:56 · 1020 阅读 · 0 评论 -
Codeforces 390 E. Inna and Large Sweet Matrix
主要是树状数组的改段求段操作。。。E. Inna and Large Sweet Matrixtime limit per test1 secondmemory limit per test512 megabytesinputstandard inputoutputstandard output原创 2014-02-13 13:38:58 · 1738 阅读 · 0 评论 -
SPOJ 3273 Order statistic set
红果果的treap模板题。。。白书版treapOrder statistic setTime Limit: 2000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu[Submit] [Go Back] [Status] Description原创 2014-02-16 16:56:02 · 1329 阅读 · 0 评论 -
BZOJ 1588 [HNOI2002]营业额统计
treap的入门题,虽然在splay的论文里看到过这题。。。遇到2个奇葩问题:1:BZOJ 上用srand(time(NULL))会RE 2:这题的数据不完整1588: [HNOI2002]营业额统计Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 6820 Solved: 2250[Submit][Status]Des原创 2014-02-16 23:00:21 · 1430 阅读 · 0 评论 -
HDOJ 2888 Check Corners
二维RMQ模板。。。。Check CornersTime Limit: 2000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1552 Accepted Submission(s): 569Problem Descriptio原创 2014-02-18 18:06:46 · 1209 阅读 · 0 评论 -
ZOJ 3261 Connections in Galaxy War
并查集。。。倒过来统一处理,再正向输出Connections in Galaxy WarTime Limit: 3 Seconds Memory Limit: 32768 KBIn order to strengthen the defense ability, many stars in galaxy allied together and原创 2014-02-19 22:37:32 · 1217 阅读 · 0 评论 -
HDOJ 1754 I Hate It
一个简易的splay。。。。I Hate ItTime Limit: 3000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u[Submit] [Go Back] [Status] Description很多学校流行一种比较的习惯。原创 2014-03-04 10:10:04 · 1180 阅读 · 0 评论 -
BZOJ 1588 [HNOI2002]营业额统计
Splay的插入,找最大,最小值。。。。。1588: [HNOI2002]营业额统计Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 6966 Solved: 2303[Submit][Status]Description营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析原创 2014-03-05 17:56:32 · 1056 阅读 · 0 评论 -
BZOJ 3224 Tyvj 1728 普通平衡树
Splay入门题。。。断断续续写了几天。。。。自己写的常数好大。。。。。3224: Tyvj 1728 普通平衡树Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 862 Solved: 351[Submit][Status]Description您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提原创 2014-03-12 20:01:01 · 1645 阅读 · 0 评论 -
POJ 3468 A Simple Problem with Integers
线段树基础题,除线段树外至少还有2种做法:树状数组,SplayA Simple Problem with IntegersTime Limit: 5000MS Memory Limit: 131072KTotal Submissions: 54111 Accepted: 16267Case Time Lim原创 2014-03-14 13:21:56 · 1107 阅读 · 0 评论 -
HDOJ 4630 No Pain No Game
树状数组维护+离线最大gcd一定是某个数的一个约数,对所有询问按右端点排序,用树状数组维护即可。。具体做法:记录每个约数出现的上一个位置pre,对于左端点落在pre之前的询问这个约数就可能是答案,所以我们对pre向前进行维护,而询问的时候从左端点往上找最大值。。。。No Pain No GameTime Limit: 4000/2000 MS (Java/Others)原创 2014-03-27 20:52:59 · 1228 阅读 · 0 评论 -
HDOJ 4614 Vases and Flowers
线段树+二分区间用线段树维护某一段内还有多少个花瓶可以用,二分确定插入的左右界.....Vases and FlowersTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1782 Accepted Submis原创 2014-04-29 19:15:36 · 1167 阅读 · 0 评论 -
HDOJ 3487 Play with Chain
裸的Splay 翻转+剪切粘贴Play with ChainTime Limit: 6000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3397 Accepted Submission(s): 1408Problem Des原创 2014-05-03 22:25:39 · 1346 阅读 · 0 评论 -
HDOJ 4638 Group
求一段区间内有几段连续的数。。。考虑从左开始往右扫:对于数a 如果a+1和a-1都没有那么区间段数加1;如果a+1或a-1中的一个已经在被扫过了,那么区间段数没有增加;如果a+1和a-1都在,正好把两个数连起来区间段数-1。。变化总和就是。。。最终的段数。将询问离线按L排序处理,删除数a的时候,如果与a相邻的数还在后面,那么对应的变化值+1。。。。数状数组维护即可原创 2014-04-03 21:19:52 · 1180 阅读 · 0 评论 -
HDOJ 3874 Necklace
树状数组求区间内不同元素和离线考虑,把询问区间按右端点排序,记录每个数上一次出现的位置,如果已经出现过,把上一个删掉,当前的加进去,即只留下最近的一个元素。NecklaceTime Limit: 15000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s原创 2014-03-26 09:18:48 · 1493 阅读 · 0 评论 -
HDOJ 3436 Queue-jumpers
N的范围很大,但Q的范围比较小.可以把TOP,QUERY操作用到的点分离出来,没用到的段缩成点对于TOP 把x转到根,删除后加到开头位置对于QUERY 旋转到根直接输出对于RANK,递归Queue-jumpersTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe原创 2014-05-07 17:03:10 · 1246 阅读 · 0 评论 -
HDOJ 4358 Boring counting
先dfs一下把树转换成对应的数组,对每一个询问就相当于求每个区间内出现k次的不同数的个数。然后类似HDOJ3874就可以用树状数组来维护了,运用离线的思想,把询问的区间按右端点排序,再预处理出每个数出现的前一次的位置pre和前k-1次的位置pk。pre[pre[pk[i]]]pre[pk[i]]pk[i]i对于i号位置上的数,如果pk[i]存在,则对于右端点是位置i的询问来说如果左端点在2原创 2014-03-26 21:50:34 · 1316 阅读 · 0 评论 -
HDOJ 1890 Robotic Sort
Splay.... 每次把第i大的数旋转到根结点。删除这个点然后旋转左区间Robotic SortTime Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2050 Accepted Submission(s):原创 2014-04-24 23:06:47 · 1593 阅读 · 0 评论 -
POJ 3580 SuperMemo
裸Splay区间操作: 内存池+区间加减+区间翻转+插入+删除+维护最值SuperMemoTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 8552 Accepted: 2801Case Time Limit: 2000MS原创 2014-04-25 21:42:49 · 1475 阅读 · 0 评论 -
UVA 12538 Version Controlled IDE
ext/rope 真是持久化字符串处理神器......UVA - 12538VersionControlled IDETime Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu12538 Ve原创 2014-04-26 16:10:30 · 1281 阅读 · 0 评论 -
CSU 1414: Query on a Tree
预处理每个结点的子结点的个数sons , 则对x的询问可由sons[x]- sigma( sons[v] ) (v是到x距离为d的点)得到怎么快速的找到这些v呢? 注意到距离x为d的点肯定在树的同一层....可以对树进行dfs时记录每个结点时间戳的同时把每一层的结点保存下来,然后对每一层维护一个前缀和 如果v是x下面子结点那么v的时间戳肯定在x的范围内,这样就可以二分確定出前缀和的范围了.原创 2014-04-28 01:25:55 · 1519 阅读 · 0 评论 -
HDOJ 4619 Warm up 2
留下的数目 = 连通的木块的数目 - 连通的木块的数目/2.....并查集维护即可......Warm up 2Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1635 Accepted Submiss原创 2014-04-26 23:01:49 · 1007 阅读 · 0 评论 -
Codeforces Round #FF (Div. 1) B. DZY Loves Modification
枚举行取了多少次,如行取了i次,列就取了k-i次,如果行列单独贪心考虑然后相加,那么有i*(k-i)个交点是多出来的:dpr[i]+dpc[k-i]-i*(k-i)*p枚举i取最大值。。。。B. DZY Loves Modificationtime limit per test2 secondsmemory limit per test256原创 2014-07-15 17:40:47 · 1200 阅读 · 0 评论 -
Codeforces Round #FF 446 C. DZY Loves Fibonacci Numbers
参考:http://www.cnblogs.com/chanme/p/3843859.html然后我看到在别人的AC的方法里还有这么一种神方法,他预先设定了一个阈值K,当当前的更新操作数j原来:id 0 1 2 3 4 5 6 7 8 9 10d 0 0 0 0 0 0 0 0 0 0 0更新:id 0 1 2 3 4 5 6 7 8原创 2014-07-15 22:43:26 · 1284 阅读 · 0 评论 -
POJ 3277 City Horizon
简单的Lazy操作,统计的时候把所有的lazy都推到叶节点就可以了City HorizonTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 15973 Accepted: 4336DescriptionFarmer John has take原创 2014-07-17 13:35:06 · 1070 阅读 · 0 评论 -
ZOJ 1610 Count the Colors
线段树:延伸标记+暴力更新记得刚学线段树的时候做这题WA了一版。。。。。现在分分钟搞定。。。。Count the ColorsTime Limit: 2 Seconds Memory Limit: 65536 KBPainting some colored segments on a line, some previously painted segm原创 2014-07-16 23:26:54 · 1047 阅读 · 0 评论 -
ZOJ 3790 Consecutive Blocks
离散化+暴力Consecutive BlocksTime Limit: 2 Seconds Memory Limit: 65536 KBThere are N (1 ≤ N ≤ 105) colored blocks (numbered 1 to N from left to right) which are lined up in a row. An原创 2014-06-06 21:30:08 · 1293 阅读 · 0 评论 -
HDOJ 4857 逃生
BestHack.....真乱.....逃生Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 139 Accepted Submission(s): 20Problem Description原创 2014-07-20 22:21:48 · 1172 阅读 · 0 评论 -
POJ 2104 K-th Number
静态区间第K大,主席树写法。主席树第一题,如果对整段区间建线段树可以求1~n范围内的第K大,要想求任意区间内的第K大需要建1~i 的n棵线段树。求某一段的时候区间相减就可以了。但是这样空间消耗太大所以要尽量利用以前的节点。注意到1~i的线段树和i~i+1的线段树只某一条链上的值不同,所以我们只要建出这一条链就可以了,剩下的节点和1~i+1的线段树是一样的,我们直接把节点指过去。T[ ...原创 2014-07-28 12:55:52 · 1106 阅读 · 0 评论 -
POJ 2761 Feed the dogs
静态区间第K大,主席树。。。。Feed the dogsTime Limit: 6000MS Memory Limit: 65536KTotal Submissions: 15491 Accepted: 4780DescriptionWind loves pretty dogs very原创 2014-07-28 22:08:02 · 1028 阅读 · 0 评论 -
HDOJ 4893 Wow! Such Sequence!
Wow! Such Sequence!Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1265 Accepted Submission(s): 387Problem DescriptionRecent原创 2014-07-30 10:08:32 · 805 阅读 · 0 评论