数据结构
文章平均质量分 78
dr5459
这个作者很懒,什么都没留下…
展开
-
UVA11995----数据结构水题
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3146这个题目的意思很简单,给你一些push和pop操作,然后根据操作的结果来猜数据结构。就三种,stackqueuepriority queue正好用STL就可以模拟。原创 2013-04-22 17:19:28 · 795 阅读 · 0 评论 -
HDU3486----Interviewe----二分+一维RMQ
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3486题目意思:给定n个数的序列,让我们找前面k个区间的最大值之和,每个区间长度为n/k,如果有剩余的区间长度不足n/k则无视之。现在让我们找最小的k使得和严格大于m。n解题思路:用二分枚举k,然后用RMQ来查询区间内的最大值,即可代码:#include#include原创 2013-08-12 22:58:09 · 1076 阅读 · 0 评论 -
HDU3613-----Best Reward-----用扩展KMP来判断某个串是不是回文串
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3613题目意思:给你一个字符串S,然后会告诉你每种字母的值让你把S分成两个子串,若子串是回文串,则价值等于字母价值之和,不然为0问你最大价值解题思路:枚举分开的点,然后对前后两个子串进行判断是否是回文串,然后算出值,求出最大值即可比较难搞的就是怎么判断回文串,如果用暴力的话就原创 2013-08-10 20:37:28 · 1155 阅读 · 0 评论 -
POJ3162------无向图不带环最长路加线段树(树上DP)
题目地址:http://poj.org/problem?id=3162题目意思:有N个点,分贝是1~N,然后要你求出每个点在这个图上的最长路然后找一个连续的子序列,使得这个序列的最大值和最小值之差小于等于M,求最长的子序列的长度解题思路:首先是求最长路,这个和HDU的COMPUTER简直就是一模一样但是要注意,因为这个数据量很大, 所以不建议使用STL,我用的是指针原创 2013-07-04 23:44:04 · 1397 阅读 · 0 评论 -
HDU3630----最大子矩阵+二维RMQ
地址:http://acm.hdu.edu.cn/showproblem.php?pid=3630题目意思:给你一个矩阵N*M有Q次查询,然后问你一个子矩阵里面的最大收益收益的算法是:这个子矩阵里面找一个不含-1的矩阵,然后求他的和,其中可以选一个点,是其值变为S倍,显然,选最大的最好解题思路:这个题分两步:先求最大子矩阵,然后用二维RMQ求出最大值就OK,其中求和可以原创 2013-07-03 23:57:27 · 1164 阅读 · 0 评论 -
ZOJ2859-----二维的RMQ
题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2859题目意思:给你一个矩阵,求出子矩阵中的最小元素解题思路:之前用二维的线段树做过,但是查询时间是O(logn*logn)现在用二维RMQ的话,可以把查询时间做到O(1)它的预处理时间是O(n*n*logn*logn)代码:#inc原创 2013-06-26 00:04:33 · 798 阅读 · 0 评论 -
HDU3336------KMP+DP
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3336题目意思:给你一个字符串,要求求出所求的前缀在字符串一共出现了多少次解题思路:KMP+DP我们令dp[i]表示以s[i]结尾的字符串中出现了几个以s[i]结尾的前缀那么对于每个i而言,我们就是找出在1~i-1里面的和s[i]相匹配的前缀j得到dp[i]=dp[j]+1(原创 2013-06-20 11:03:17 · 766 阅读 · 0 评论 -
POJ3261----后缀数组
题意:http://poj.org/problem?id=3261题目意思:给你一个序列,要你求出一个最长的重复序列的长度且这个序列在母序列中至少重复了k次这个重复序列是可以重叠的解题思路:二分答案,然后将后缀分成若干组。不同的是,这里要判断的是有没有一个组的后缀个数不小于k。如果有,那么存在k 个相同的子串满足条件,否则不存在。这个做法的时间复杂度为O(nlogn)。原创 2013-06-07 20:47:07 · 694 阅读 · 0 评论 -
POJ1743-----后缀数组+二分(男人八题之一)
题目地址:http://poj.org/problem?id=1743题目意思:给你n个音符,每个音符到另外一个音符,会有一个转换值,即差值,形成一个串。让你找出里面最长的重复串(至少重复2次),且不相互覆盖要求,如果组成这些串的音符要>=5,即音乐差值组成的串要大于等于4否则输出0解题思路:先二分答案,把题目变成判定性问题:判断是否存在两个长度为k 的子串是相同的原创 2013-06-07 19:50:59 · 900 阅读 · 0 评论 -
SPOJ694----后缀数组
题目地址:http://www.spoj.com/problems/DISUBSTR/题目意思:给你一个字符串,要你去除他的不同的子串的数量解题思路:每个子串一定是某个后缀的前缀,那么原问题等价于求所有后缀之间的不相同的前缀的个数。如果所有的后缀按照suffix(sa[1]), suffix(sa[2]),suffix(sa[3]), …… ,suffix(sa[n])的顺原创 2013-06-07 21:27:46 · 1008 阅读 · 0 评论 -
URAL1297------后缀数组
题目地址:http://acm.timus.ru/problem.aspx?space=1&num=1297题目意思:给你一个字符串,要你求出最长的回文子串解题思路:把原串的反串加个原串后面,中间加个没有出现过的字符然后,原串中,下标i在反串中对应的位置为2*l-i如果求以i为对称轴的回文串,我们求suffix(i)和suffix(2*l-i)的LCP如果求以i和i+1为对原创 2013-06-09 22:22:13 · 878 阅读 · 0 评论 -
HDU2243-----AC自动机+矩阵乘法+矩阵公式
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2243题目意思:给你n个字符串,然后给你一个长度L问你在长度不超过L的所有字符串中(a~z)有多少个至少含有一个子串意思很明确了,下面说解法,这题和POJ2778很类似,详见:http://blog.csdn.net/dr5459/article/details/8971626原创 2013-05-27 22:47:05 · 981 阅读 · 0 评论 -
POJ2778----AC自动机的变形+矩阵快速幂(AC自动机和矩阵快速幂必做题)
题目地址:http://poj.org/problem?id=2778题目意思:给你M个DNA的小序列然后要你求出长度为N但是不含给出的M个小DNA的情况有多少种这是一道很好的题目对算法的要求很高,具体的思路我是在:http://blog.csdn.net/morgan_xww/article/details/7834801学来的,所以可以移步去看原创我主要说说几个要注意的原创 2013-05-24 20:24:56 · 1091 阅读 · 0 评论 -
ZOJ3430----AC自动机加模拟(巨坑,心里素质不好的人别做)
题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4114题目的意思:给你一个加密的字符串,让你用二进制表示,每六位一个字符然后再用8位二进制表示一个明文的字符,这是翻译的过程。给你一些病毒的暗文,再给你一些长的字符串的暗文问你每个长字符串暗文中出现了几种病毒,看清楚,是几种,不是几个。我为此WA了一原创 2013-05-21 18:27:29 · 895 阅读 · 0 评论 -
HDU3065----AC自动机的初级阶段
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3065题目意思:给你n个子串,问你在一个大的字符串里面每个子串出现了多少次裸的AC自动机就是统计那里稍作改动对于每一个子串的结尾的val[u]=v这个v就是第几个的意思,便于后面统计然后加入统计函数void tongji(int j){ if(j)原创 2013-05-20 20:11:07 · 754 阅读 · 0 评论 -
UVA11992----线段树的成段更新
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=501&page=show_problem&problem=3143这个题目的意思是有一个矩阵,给你三个操作分别是给一个子矩阵加一个值或者将一个子矩阵的每个元素赋成一个值再就是查询一个子矩阵的所有元素的和,最大值,原创 2013-05-02 23:06:18 · 828 阅读 · 0 评论 -
WHU1478----2014年武大邀请赛H题----双向链表
题目地址:http://acm.whu.edu.cn/land/problem/detail?problem_id=1478这个题目的意思很简单,提供几种操作光标左移,右移插入一个字母删除一个字母这个完全可以利用双向链表来模拟,左移就将指针左移,右移同理建立一个空头的双向链表,每当要插入的时候在当前光标的后面插入如果需要删除的话,就将当前光标的内容删除,并将pos往前移原创 2013-04-21 22:01:25 · 848 阅读 · 0 评论 -
HDU1711-----Number Sequence-----裸的KMP
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1711题目意思:找出b在a中的起始位置,没有则是-1解题思路:裸的KMP,不多说不会KMP的话可以去看http://www.cppblog.com/oosky/archive/2006/07/06/9486.html说的非常好模板我是拿的大白的代码:#include原创 2013-08-13 23:10:19 · 959 阅读 · 0 评论