数据结构
文章平均质量分 79
dyx心心
这个作者很懒,什么都没留下…
展开
-
codeforces 145E - Lucky Queries
题目大意:给一个长度为n的47序列(就是只有4和7),两种操作: 操作1:count 要求输出当前数列的最长非下降子序列(注意是子序列,不是子串。。。一开始没看清题WA半天)。 操作2 : switch l r 将区间[l,r]之间的数反转(这里的反转指的是4变成7 7变成4) 然后就是给你一堆操作,对每一个操作1输出相应的值。。。 PS:这竟然是div1 的 E,我觉得就是一道很中规中矩原创 2013-03-14 16:24:36 · 1141 阅读 · 0 评论 -
2013多校联合3 1010 No Pain No Game(hdu 4630)
http://acm.hdu.edu.cn/showproblem.php?pid=4630 No Pain No Game Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 72 Accepted Submis原创 2013-07-30 20:09:06 · 1779 阅读 · 2 评论 -
2013 多校联合2 D Vases and Flowers (hdu 4614)
Vases and Flowers Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 347 Accepted Submission(s): 108 Problem Description Alice i原创 2013-07-25 21:53:35 · 1244 阅读 · 0 评论 -
2013 多校联合4 1007 Group(hdu 4638)
http://acm.hdu.edu.cn/showproblem.php?pid=4638 Group Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 59 Accepted Submission(s): 2原创 2013-08-01 19:36:47 · 1418 阅读 · 0 评论 -
HDU 4691 Front compression (2013 多校联合9 1006)
http://acm.hdu.edu.cn/showproblem.php?pid=4691 Front compression Time Limit: 5000/5000 MS (Java/Others) Memory Limit: 102400/102400 K (Java/Others) Total Submission(s): 231 Accepted S原创 2013-08-20 20:45:41 · 6767 阅读 · 0 评论 -
HDU 4666 Hyperspace(2013多校联合7 1001)
http://acm.hdu.edu.cn/showproblem.php?pid=4666 Hyperspace Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 615 Accepted Submissi原创 2013-08-14 19:48:59 · 1120 阅读 · 0 评论 -
HDU 4578 Transformation(2013 杭州赛区全国邀请赛 1003)
http://acm.hdu.edu.cn/showproblem.php?pid=4578 Transformation Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 65535/65536 K (Java/Others) Total Submission(s): 1483 Accepted Subm原创 2013-08-14 20:51:22 · 2136 阅读 · 0 评论 -
2013多校联合8 1004 Terrorist’s destroy(hdu 4679)
http://acm.hdu.edu.cn/showproblem.php?pid=4679 Terrorist’s destroy Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 268 Accepted S原创 2013-08-15 21:04:27 · 1052 阅读 · 0 评论 -
codeforces 266E More Queries to Array 线段树
题目大意:给你一串数列,a[1]~a[n]。有两种操作 操作1:", (1 ≤ l ≤ r ≤ n; 0 ≤ x ≤ 109). 表示将区间[l,r]中的数全赋值为x。 操作2:"", (1 ≤ l ≤ r ≤ n; 0 ≤ k ≤ 5). 表示计算的值,取模1000000007后输出。 先给你q个操作,对于每一个操作2,输出对应的值。 思路:这道题的关键就在k的范围很小,只原创 2013-03-14 15:55:41 · 902 阅读 · 0 评论 -
hdu 4786 Fibonacci Tree (2013ACMICPC 成都站 F)
http://acm.hdu.edu.cn/showproblem.php?pid=4786 Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 49 Accepted Submission(s原创 2013-11-17 19:16:25 · 2318 阅读 · 1 评论 -
hdu 4777 Rabbit Kingdom (2013acmicpc亚洲区域赛杭州站 H)
http://acm.hdu.edu.cn/showproblem.php?pid=4777 Rabbit Kingdom Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 296 Accepted Submission原创 2013-11-13 09:38:59 · 3493 阅读 · 1 评论 -
zoj 3813 Alternating Sum(2014ACMICPC Regional 牡丹江站网络赛 E)
Alternating Sum Time Limit: 2 Seconds Memory Limit: 65536 KB There is a digit string S with infinite length. In addition, S is periodic and it can be formed by concatenating infinite re原创 2014-09-08 12:02:17 · 3554 阅读 · 3 评论 -
2013 多校联合 H Park Visit (hdu 4607)
http://acm.hdu.edu.cn/showproblem.php?pid=4607 Park Visit Problem Description Claire and her little friend, ykwd, are travelling in Shevchenko's Park! The park is beautiful - but large, ind原创 2013-07-23 21:55:03 · 1015 阅读 · 0 评论 -
2013 多校联合 F Magic Ball Game (hdu 4605)
http://acm.hdu.edu.cn/showproblem.php?pid=4605 Magic Ball Game Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 309 Accepted Subm原创 2013-07-24 16:03:31 · 1359 阅读 · 0 评论 -
poj 2104 (划分树模板)
http://poj.org/problem?id=2104 题意:求一个数列任意区间的第k小值。 思路:划分树模板题,划分树的资料这里有:http://blog.csdn.net/dyx404514/article/details/8731696 #include #include #include #include #define maxn 100010 #define原创 2013-03-28 16:44:03 · 1537 阅读 · 0 评论 -
划分树小结
最近学习了一下划分树,下面总结一下。 我们在求区间最值的时候,一般可以用线段树解决,但是如果要求区间第k小或者第k大值的话线段树就有点力不从心了,这是我们可以用划分树来解决。划分树利用了快速排序的思想,首先是建树,我们设当前区间的中位数为mid,(为了能快速找到区间的中位数,我们一般先对原序列做一次排序)则我们将区间中比mid小的放入左子树,将区间中比mid大数的放入右子树中,和mid相等的要讨原创 2013-03-28 16:37:46 · 2138 阅读 · 0 评论 -
LCA的树链剖分实现
这篇本来是要在树链剖分小节中写的,但是我感觉这只是树链剖分的一个衍生物,所以另开了一篇,如果对树链剖分部分还不是太了解,请看上面的链接。 计算树中两个节点的最近公共祖先,我们一般有爬山法,Tarjan离线算法,或者是将LCA转换成RMQ来解,这里讲一讲一种新的求LCA的算法,它是基于树链剖分的。 我们先来复习一下树链剖分中各个节点所维护的信息: 1:siz[v]表示以v为根的子树的节点总数。原创 2013-03-25 17:55:09 · 2783 阅读 · 0 评论 -
树链剖分小节
前段时间学习了下树链剖分,好久没看了,今天又复习一遍,赶紧写下来,别又忘了。 我们在信息学竞赛中,有时会碰到这么一类题型,在一棵树中,修改两点之间路径上的所有边(或点)上的某个变量(如边的长度,点的权值等等),然后询问单个点(或边)或者两点之间路径上的所有点(或边)的某些性质(如边权之和,最大边最小边等等)。对于这样的题,往往容易往线段树上去靠,但是,单单是用线段树是无法维护每一条链的性质的,所原创 2013-03-25 17:57:15 · 4007 阅读 · 0 评论 -
hdu 4417 Super Mario (划分树)
http://acm.hdu.edu.cn/showproblem.php?pid=4417 题意:求一组数列中任意区间内不大于h的数的个数。 思路:这题可以用划分树来做,我们只要找到区间内比h大的数中最小的那个,若它是该区间第k小的数,则答案即为k-1,我们可以通过二分来查找区间的第k小数,找到比h大的最小的数后即可得到答案,注意h可能比区间内的所有书都大,这个要特殊处理一下原创 2013-03-28 16:58:31 · 1389 阅读 · 0 评论 -
2013微软编程之美 资格赛C 树上的三角形
题目大意:给你一棵树,问你树中两点之间的最短路上的边集合中是否可以找到三条边,使得它们可以组成一个三角形。 节点数100000,询问数100000,边长的范围是[1,1000000000]。 思路:对于这道题,直接将两点之间的边求出来再判断肯定是不现实的(小数据就可以。。。),我们不妨先来求一个简化的问题,即:给你一系列边,问你从中是否可以选择三条边组成一个三角形。对于给定三条边a,b,c,它原创 2013-04-11 16:03:56 · 1916 阅读 · 2 评论 -
codeforces 178C3 - Smart Beaver and Resolving Conflicts 线段树
题目大意:这道题用到了hash表处理冲突的一种办法,给你一个大小为h的hash表标号从0到h-1,记为hash[0]~hash[h-1] 有两种操作: 1:"+ id ha":表示向哈希表中插入一个 哈希值为h,标号为id的元素,若hash[ha]为空,则直接插入即可,若hash[ha]已被占据,则给一个数m,在(ha+m)%h处插入,若还为非空,则继续在(ha+2*m)%h处插入,直到找到一原创 2013-03-14 10:05:07 · 1013 阅读 · 0 评论 -
codeforces 292E Copying Data(线段树)
http://codeforces.com/problemset/problem/292/E 题目大意:两个数组,a和b,两种操作: 1:将数组a的区间[x,x+k-1]复制给数组b的区间[y,y+k-1]。 2:问当前b[x]的值。 思路:这道题可以用线段树做,在线段树中维护以下值:sta,stb,这两个值只有在线段树的叶子节点才有意义,对于一个位置po,(也就是线段[po,po]原创 2013-04-18 10:36:14 · 1472 阅读 · 0 评论 -
codeforces 295E Yaroslav and Points (线段树)
http://codeforces.com/problemset/problem/295/E 题目大意:在一条水平的直线上有n个点,编号1~n,告诉你每个点的横坐标xi,然后有两个操作: 1:将编号为i的点平移d各单位,d为正往右,否则往左。 2:求处于区间[l,r]之间每一对点的距离之和,即求 。 思路:还是比较裸的线段树问题,我们在线段树中维护以下值: num:该区间有多少个点。原创 2013-04-18 10:53:15 · 1567 阅读 · 0 评论 -
2013金山西山居创意游戏程序挑战赛——初赛(1) C CD操作
http://acm.hdu.edu.cn/showproblem.php?pid=4547 题意:就是给你一棵树,从一个节点到它的子孙节点只需要一步,到他的祖先节点则要一步一步地向上爬x步(x为它到其祖先节点之间的边数)。给你两个节点a,b,问从a到b最少经过多少步。 思路:额。。。就是裸的LCA,求出两个点的的LCA,设为C点,那就从a到c然后再到b,从a到c就是a和c之间的深度只差原创 2013-05-17 21:03:44 · 1426 阅读 · 0 评论 -
IT面试题——判断合法出栈序列
在技术笔试面试上,我们常常会遇到这样一类题型,如给你一个入栈序列,然后再让你判断几个序列是否有可能为它的出栈序列,如: 入栈序列为 1 2 3 4 5,则 1 2 3 4 5可能为它的出栈序列,而 5 4 1 2 3不可能为它的出栈序列。 对于n比较小的情况,我们往往可以通过手动模拟的方式来判断,对于n比较大的时候,这种方法就显得效率不佳了。 下面介绍一种通用的方法判定合法出栈序列,时间原创 2013-05-12 21:04:11 · 1985 阅读 · 0 评论 -
trie树总结
Trie树 Trie树,又称字典树,是字典的一种存储方式,字典中的每一个单词在Trie树种体现为从根节点出发的路径,路径中每条边代表一个字母,将边连接起来便形成了对应的单词,如图,就是一颗Trie树,其中存储了ab,ac,bc,c,cd五个单词(其中加粗节点表示单词结尾节点)。 一:Trie树的基本概念 Trie树是由链接的节点所组成的数据原创 2014-12-27 19:49:21 · 1720 阅读 · 0 评论