
ACM_数据结构
文章平均质量分 92
PoemK
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
P1196 [NOI2002] 银河英雄传说 带权并查集
P1196 [NOI2002] 银河英雄传说 带权并查集原创 2023-02-25 18:57:05 · 445 阅读 · 0 评论 -
poj 1151 Atlantis 线段树扫描线
题目题意:给出一些矩形,求面积的并。解法:扫描线,每个矩形对应两个竖直的线段,左边的线段标记为1代表添加,右边的线段标记为-1,代表减。现在从左往右扫描。计算每次从一个条直线段到另一条线段中间的面积(线段树维护的总长度*两线段横坐标之差)。 需要离散化, 线段树中叶子结点维护的区间左右坐标之差为1(离散后),每个结点还要记录当前段的标记,如果是0,那么当前段len为0,否则当前段len=lson.原创 2016-09-19 13:20:53 · 354 阅读 · 0 评论 -
hdu 5818 Joint Stacks 栈
题意:给出两个栈A、B,n个操作三种操作:push A/B x (将x放入A/B)pop A/B (A/B出栈)merge A B (将A、B栈的元素按照入栈时间顺序放入A中)或merge B A,要求 每次pop时输出元素的值。(n<=50000)原创 2016-08-09 19:48:16 · 790 阅读 · 0 评论 -
hdu 4821 滑动窗口+字符串哈希
StringTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2509 Accepted Submission(s): 753Problem DescriptionGiven a string S and原创 2016-07-08 14:11:13 · 835 阅读 · 0 评论 -
poj 3494 Largest Submatrix of All 1’s 单调栈/DP迭代法
题意:给出一个m*n的01矩阵,问在系数全为1的子矩阵中 系数和的最大值。解法:DP中的迭代法,或者单调栈。不论哪种方法核心都是对于每个高度为h的矩形,找到最左高度大于等于它的位置,和最右的位置。#include#include#include#include#include#include#includeusing namespace std;#de原创 2016-07-10 23:56:09 · 1110 阅读 · 0 评论 -
数据结构习题 (整理中)
字典树:hdu 1251 统计出以某个字符串为前缀的单词数量hdu 1800 要求的就是有几个递减的序列,也就是找到最多重复的值。hdu 1247 离线处理这个题很蛋疼,不仅不告诉你字符串的长度,而且ac代码对于ab abab 这种情况的结果竟然是abhdu 1671 顺序插入即可,插入时判断,是否存在其前缀或者插入的号码是否是其它号码的前缀。hdu原创 2016-05-16 12:56:04 · 907 阅读 · 0 评论 -
FZU - 1894 志愿者选拔 单调队列
单调队列的几个性质:如果我要知道区间最大值,需要维护单调递减的队列,那么队头元素就对应最大值。如果我要知道区间最小值,需要维护单调递增的队列,那么队头元素就对应最小值。队列里存放的可以是元素下标,也可以是元素值。如果维护单增队列(就是要知道区间最小值),如果当前入队元素比队尾小,那么去掉队尾,直至比队尾元素大,因为可以保证查询区间的最小值一定是队头元素。原创 2016-04-11 15:00:51 · 333 阅读 · 0 评论 -
NKOJ 2151【单调队列】烽火传递 单调队列优化DP
dp[x]=min{dp[y]}+a[x] ( x-m利用单调队列去优化dp【单调队列】烽火传递Time Limit:10000MS Memory Limit:65536KTotal Submit:91 Accepted:36 Case Time Limit:1000MS Description烽火台又称烽燧,是重要的防御设施,一般建在险要处或交原创 2016-04-12 12:10:52 · 656 阅读 · 0 评论 -
NKOJ 2150 【单调队列】广告印刷
输出用cout,不然用lld和I64d都会wa。对于每一个建筑物,要知道往左到哪一个建筑第一个高度比它低,知道往右走哪一个建筑物第一个高度比它低。可以用dp,也可以用单调队列。首先从左往右,构造单增队列,这样始终有一个最小值,每加入一个高度h,先把队尾处大于等于它的高度全部删掉。因为后面的高度,如果高度比h大,那么找到h就停止了,如果高度如果队列空了,证明h是从1开始到ind[原创 2016-04-12 11:28:12 · 1410 阅读 · 0 评论 -
KMP 整理
hdu 1686 Oulipo/**========================================== * This is a solution for ACM/ICPC problem * * @source£ºhdu 1686 Oulipo * @type: dp * @author: wust_ysk * @blog: htt原创 2016-01-24 22:48:15 · 468 阅读 · 0 评论 -
hdu 1800 Flying to the Mars 字典树
给出一些个长度可能爆long long的数,每个长度不超过30位,问同一个数最多出现多少次。显而易见字典树,6因为long long存不下。注意输入中有的数字有前导零。下面的代码中找最大值写麻烦了,我用的是树形dp,因为只需求这棵树里面访问最多的结点,故只需用一个变量ans保存结果即可。/**=========================原创 2016-01-27 20:23:42 · 325 阅读 · 0 评论 -
hdu 2328 Corporate Identity
输出最长公共子串Corporate IdentityTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 795 Accepted Submission(s): 318Problem Descri原创 2016-01-26 12:57:47 · 566 阅读 · 0 评论 -
hdu 1238 Substrings KMP问题
给出一些字符串,找出最大满足条件的连续子串使之满足:在每一个字符串中都正序存在或逆序存在。输出最大长度。SubstringsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8758 Accepted Submiss原创 2016-01-26 10:37:53 · 398 阅读 · 0 评论 -
hdu 3336 Count the string KMP模式匹配 ★★★
对于给定字符串S,求出它所有前缀在S中出现的次数和。Count the stringTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7116 Accepted Submission(s): 3291原创 2016-01-25 19:27:24 · 438 阅读 · 0 评论 -
hdu 2594 Simpsons’ Hidden Talents
给出字符串S1和S2求最长字符串,使之即是S1的前缀又是S2的后缀。Simpsons’ Hidden TalentsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5203 Accepted Submiss原创 2016-01-25 14:26:12 · 363 阅读 · 0 评论 -
poj 3080 Blue Jeans KMP模式匹配
给出m个长度为60的字符串,现在要你找到最长公共子串(若多个,取字典序最小)Blue JeansTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 15284 Accepted: 6786DescriptionThe Genographic P原创 2016-01-25 13:22:14 · 509 阅读 · 0 评论 -
uvaLive 3942 Remember the Word 字典树
题目题意:给出一个充满单词的字典,单词长度(<=100),个数(<=4000),再给出一个字符串,长度(<=300 000),问该字符串有多少种拆分单词的方法。解:很容想到一维dp,但是类似朴素LIS的转移时间不够,但是这题有个弱点就是单词的长度有限。 本来我想的dp转移是当前状态找前驱状态,不过这样字典树中的字符串需要逆序插入,不方便。所以书上的做法是更新后继状态的那种。#include<cst原创 2016-09-19 21:33:41 · 309 阅读 · 0 评论 -
uvaLive 3026 - Period 水KMP循环结
题目题意:给出一个字符串,找所有能表示成K*T的位置(K>1),并给出相应的T。n≤1000000n≤ 1000000解:第i个位置的最短循环结长度为 i+1-nex[i+1]…#include<cstdio>#include<string>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>#incl原创 2016-09-19 21:59:43 · 381 阅读 · 0 评论 -
hdu 5510 Bazinga 剪枝+find()/strstr()/KMP
BazingaTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 3123 Accepted Submission(s): 1002Problem DescriptionLadies and gentlem原创 2016-10-09 12:30:04 · 580 阅读 · 0 评论 -
poj 2528 Mayor's posters 线段树成段更新+离散化
题目:Mayor’s posters Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 67336 Accepted: 19470DescriptionThe citizens of Bytetown, AB, could not stand that the candidates in the mayo原创 2017-08-13 14:18:17 · 304 阅读 · 0 评论 -
poj 2481 Cows 线段树
题目 Cows Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 19518 Accepted: 6625 Description Farmer John’s cows have discovered that the clover growing along the ridge of the h原创 2017-07-29 12:07:11 · 337 阅读 · 0 评论 -
hdu 4288 Coder 线段树 区间合并
CoderTime Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4749 Accepted Submission(s): 1808Problem Description In mathematics a原创 2015-11-11 23:35:43 · 456 阅读 · 0 评论 -
Codeforces Beta Round #19 D. Points 线段树+离散化离散化
D. Pointstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputPete and Bob invented a new interesting game. Bob原创 2015-11-12 23:03:15 · 539 阅读 · 0 评论 -
hdu 5475 An easy problem 线段树单点更新
An easy problemTime Limit: 8000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1763 Accepted Submission(s): 786Problem DescriptionOne day, a原创 2016-10-15 17:16:19 · 324 阅读 · 0 评论 -
POJ 2886 Who Gets the Most Candies? 线段树单点更新
题意:N个小孩围成一圈,他们被顺时针编号为 1 到 N。每个小孩手中有一个卡片,上面有一个非 0 的数字,游戏从第 K 个小孩开始,他告诉其他小孩他卡片上的数字并离开这个圈,他卡片上的数字 A 表明了下一个离开的小孩,如果 A 是大于 0 的,则下个离开的是左手边第 A 个,如果是小于 0 的,则是右手边的第 A 个小孩。游戏将直到所有小孩都离开,在游戏中,第 p 个离开的小孩将得到 F(p)原创 2017-07-06 21:22:30 · 288 阅读 · 0 评论 -
线段树成段更新 POJ 3468 A Simple Problem with Integers 水题
题目 A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 116048 Accepted: 36055 Case Time Limit: 2000MS Description You have N integers, A1,原创 2017-08-12 23:59:41 · 234 阅读 · 0 评论 -
hdu 2846 简单字典树
题意:给出一些短文,然后一些个搜索串,问有多少个文章包含这个搜索串解法: 字典树,对于长度为n的短文,要向字典树插入n次,第一次为[1,n],第二次[2,n],...第n次[n,n]。每个结点要标记有多少短文经过此结点(用一个标记记录上一次的短文)。RepositoryTime Limit: 2000/1000 MS (Java/Others) M原创 2017-07-06 12:02:15 · 322 阅读 · 0 评论 -
hdu 1686 Oulipo KMP 纯手搓
OulipoTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8216 Accepted Submission(s): 3322Problem DescriptionThe French author G原创 2015-11-01 09:33:06 · 330 阅读 · 0 评论 -
hdu 1711 Number Sequence KMP入门题
Number SequenceTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 27074 Accepted Submission(s): 11428Problem DescriptionGiven two s原创 2017-07-05 17:59:54 · 332 阅读 · 0 评论 -
hdu 3530 Subsequence 单调队列
SubsequenceTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6130 Accepted Submission(s): 2037Problem DescriptionThere is a seq原创 2016-10-06 18:23:12 · 337 阅读 · 0 评论 -
HYSBZ 1444 有趣的游戏 AC自动机+概率DP+高斯消元
1444: [Jsoi2009]有趣的游戏Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 986 Solved: 325[Submit][Status][Discuss]DescriptionInput注意 是0OutputSample InputSample Out原创 2016-08-12 15:50:47 · 455 阅读 · 0 评论 -
CF 629 D. Babaei and Birthday Cake 线段树+DP
虽然没有开dp数组,但满满的dp思想。D. Babaei and Birthday Caketime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAs原创 2016-04-05 19:57:28 · 567 阅读 · 0 评论 -
POJ 3162 Walking Race TreeDP+双单调队列 ★
题意:求出树上每个点到最远点的距离,构成一个序列,然后找到最长的区间,满足其中最大值与最小值之差不超过M,输出区间长度。原创 2016-07-25 15:01:41 · 703 阅读 · 0 评论 -
hdu 5517 Triple 二维树状数组
TripleTime Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 571 Accepted Submission(s): 204Problem DescriptionGiven the finite mul原创 2016-10-11 11:43:53 · 619 阅读 · 0 评论 -
poj 2155 Matrix 二维树状数组
MatrixTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 25231 Accepted: 9354DescriptionGiven an N*N matrix A, whose elements are either 0 or 1. A[i, j]原创 2016-10-10 16:44:33 · 315 阅读 · 0 评论 -
POJ 2752 Seek the Name, Seek the Fame KMP Next[]
给出一个字符串,找出所有既是它前缀又是它后缀的字符串,输出它们的长度。Seek the Name, Seek the FameTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 15400 Accepted: 7796Description原创 2016-01-25 09:20:46 · 354 阅读 · 0 评论 -
hdu 2203 亲和串 KMP
亲和串Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10185 Accepted Submission(s): 4661Problem Description人随着岁数的增长是越大越聪明还是越大越笨,这是一个原创 2015-11-17 16:57:28 · 407 阅读 · 0 评论 -
hdu 2087 剪花布条
剪花布条Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12187 Accepted Submission(s): 7817Problem Description一块花布条,里面有些图案,另有一块直接可原创 2015-11-01 21:48:36 · 252 阅读 · 0 评论 -
uva 11997 K Smallest Sums 优先队列
题目:https://uva.onlinejudge.org/external/119/11997.pdf对于两组数a[n],b[n],每组长度为n,现在要得到a[i]+b[j] (1先对b[n]排序方法是利用b[1] + x构造一个优先队列(小的优先)先放入n个值 (a[1]+b[1]、a[2]+b[1]、a[3]+b[1]、......、a[n]+b[1])原创 2015-09-15 16:44:54 · 395 阅读 · 0 评论 -
Regionals 2007 >> Asia - Nanjing - "Ray, Pass me the dishes!" 线段树 难 uva live 3938
题目:https://icpcarchive.ecs.baylor.edu/external/39/3938.pdf详见注释线段树#include#include#include#include#include#include#include#include#include#include#include#include#include#include#in原创 2015-09-29 18:13:35 · 514 阅读 · 0 评论