ACM进阶之数据结构
NYIST_TC_LYQ
这个作者很懒,什么都没留下…
展开
-
2020.9.9华为笔试记忆:KMP+记忆化搜索+字典树
2020.9.9华为笔试当然,出现在我博客中的笔试都不是我自己的笔试(人家也不给我发笔试链接,小声bibi,诶,好像我也没投,hhhahahha记者:为什么要做笔试?我:生活无聊了喏,肯定要做啊,不做又没有乐趣记者:你有手有脚的怎么不去进厂?我:进厂这方面…进厂是不可能进厂的, 这辈子不可能进厂的,投简历又不给过,就是蹭笔试这种东西,才能维持得了生活这样子记者:那你觉得刷题好还是996好?我:996的感觉像回家一样,我一年回一次家,大年三十晚上我都不回去,就平时家里有点事,我就回去看看这样子原创 2020-09-10 11:41:06 · 727 阅读 · 0 评论 -
SPOJ - ADAFIELD ,Set+map,STL不会超时!
ADAFIELD - Ada and Field 这个题,如果用一个字来形容的话:-----------------------------------------------嗯! 题意:n*m的空白矩形坐落在XY轴,Q次操作,每次可以在y轴或x轴的矩形区域内画一条直线,是直线啊。问每次操作后最大的矩形面积多大。 对于思路我只能拍手称赞了,一开始想不到怎么优化,想着用优先队列原创 2017-04-10 23:55:06 · 389 阅读 · 0 评论 -
SPOJ - ADALIST,双端队列入门模板!
ADALIST - Ada and List 这道题时限6.5s,激动人心啊,好多人STL一顿乱写AC,哈哈,如果熟悉双端队列的话这道题其实是很水的。 题意:n个数的数列,然后接下来Q次操作,每次可以将某个数x插入第k个位置,那后面的数往后移。也可以删除第k个位置上的数,还可以是查询第k个位置上的数。 这就是双端队列的裸模板啊。下面简单介绍一下双端队列。原创 2017-04-06 17:32:58 · 691 阅读 · 0 评论 -
NYOJ-117/atcoder ARC 75-E - Meaningful Mean 求逆序数。 树状数组存模板!(原模板已更正)
求逆序数时间限制:2000 ms | 内存限制:65535 KB难度:5 题意:中文题。本来用权值线段树写的,但nyoj判题机3s能当1s用,成功TLE。之前写过一个树状数组求逆序数的板子,今天发现有点点小问题,于是删除了,以这篇作为新的总结!对之前被误导的表示深深的歉意。树状数组:注意离散化const int N=1e6+10;inline原创 2017-10-07 19:37:32 · 438 阅读 · 0 评论 -
bzoj-3685 普通van Emde Boas树 权值线段树+快读!
普通van Emde Boas树 题意不再赘述见题面:设计数据结构支持:1 x 若x不存在,插入x2 x 若x存在,删除x3 输出当前最小值,若不存在输出-14 输出当前最大值,若不存在输出-15 x 输出x的前驱,若不存在输出-16 x 输出x的后继,若不存在输出-17 x 若x存在,输出1,否则输出-1 数据范围和操作数都是1原创 2017-09-21 13:43:53 · 410 阅读 · 0 评论 -
BZOJ-3207 花神的嘲讽计划Ⅰ ,hash+可持久化线段树
花神的嘲讽计划Ⅰ 昨天才看懂的可持久化线段树,被这题坑了一天。题意:相当于给你长度为n的主串,M次查询,每次查询一个区间中长度为k的子串是否出现过。因为长度k是确定的,我们把原来的数列所有长度为k的子序列hash然后用可持久化线段树保存起来,用大佬的话讲就是预处理出来的hash值扔进主席树里,查询即可。大致就是这样,考虑到数据范围,我把所有的hash值再进行了hash一波,这样我们原创 2017-09-21 13:55:50 · 394 阅读 · 0 评论 -
HDU-5971 Wrestling Match (2016ACM/ICPC亚洲区大连站)
Wrestling Match被这个题坑了一下午,强烈吐槽出题人卡stack是几个意思啊,只能用dfs或bfs。并查集都不让用的,RE了一下午。数据还这么水,POJ-1703 数据量1e5都不会爆栈的啊。还有题目说好了65536kb,1e6的数组都MLE。。。题意:n个人有m个敌对关系,两个确定的集合都有一定的人,求是否能把这n个人全部分为两个集合。典型的种类并查集,开始用df原创 2017-09-26 20:45:02 · 449 阅读 · 0 评论 -
CodeForces-776D The Door Problem
The Door Problem做这个题做了几天,中间各种事耽搁,不过也总结了很多。题意:n扇门,初始状态可能开着也可能关着,m个开关,每个开关可以改变若干个门的状态,每扇门只由两个开关控制,问是否存在一种方法把所有的门都打开。因为做并查集碰到了个问题,于是队友甩给我这道题,说实话很难想到用并查集,看了一下别人思路才知道的。把门作为边,连接两个开关,如果门是开着,所连的两个开关原创 2017-09-30 19:22:52 · 410 阅读 · 0 评论 -
POJ-1028Web Navigation
Web NavigationTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 32963 Accepted: 14704 -> Link原创 2016-07-24 16:08:24 · 499 阅读 · 0 评论 -
对优先队列的一点点理解!
暑期集训正式拉开帷幕。不过,算法还是靠自己学滴! 本来寒假集训的时候就学过这些,不过并不是很深入地了解,而且也没接触相关的题。今天花了一上午有找了找博客看看。本文是我对优先队列的一点点理解,以后还会继续整理编辑。 我们一般是先接触队列这种FIFO(first in,first out)的顺序链式数据结构,不过在某些地方要优先选取队列中的每个元素,这时候就要用到优先对列了。优原创 2016-07-10 11:35:34 · 495 阅读 · 0 评论 -
数据结构课程设计《火车售票管理系统》
题目:火车售票管理系统需求分析:要求能够实现售票、退票、余票查询等功能方法设计:可以用结构体和栈模拟买票退票的过程。车票打印效果如下:+-------------------------------------------------------+| K13010030 候车地点:1楼第1候车室 || 南阳 K1301 ...原创 2016-12-27 17:34:58 · 9034 阅读 · 1 评论 -
2017 Wuhan University Programming Contest (Online Round) D. Events,线段树区间更新+最值查询!
D. Events 线段树区间更新查询区间历史最小值,看似很简单的题意写了两天才写出来。 题意:n个数,Q次操作,每次操作对一个区间[l,r]的数同时加上C,然后输出这段区间的历史最小值。 思路:在线段树区间更新最值查询的基础上再用一个变量表示历史最小值,每次更新只需对当前最小值更新然后用当前最小值更新历史最小值。细节问题很不好处理,可能会有重复多次更新某个区间但是其下的子节原创 2017-04-12 13:08:57 · 394 阅读 · 0 评论 -
HDU-1829 A Bug's Life。并查集构造,与POJ1709异曲同工!
A Bug's Life Find them, Catch them 都是并查集构造的题,不久前MQL学长给我们拉过POJ上那道题,稍微复杂点,过了这么久竟然差不多忘完了,比赛的时候由队友在做这道题,我一直在看其他的题,在确定其他的题都不好做而且这个题好几个队都过了所以我们打算攻一原创 2017-04-14 08:47:19 · 448 阅读 · 0 评论 -
POJ1308/HDU1325/NYOJ129-Is It A Tree?,并查集!
Is It A Tree?Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 28838 Accepted: 9843 -> Link poj原创 2016-07-15 09:28:35 · 435 阅读 · 0 评论 -
NYOJ-851寻找最大数(二),栈贪心!
寻找最大数(二)时间限制:1000 ms | 内存限制:65535 KB难度:2描述给你一个数字n(可能有前缀0)。要求从高位到低位,进行 进栈出栈 操作,是最后输出的结果最大。 输入有多组测试数据。对于每组数据,输入一个n(0输出输出栈操作后的结果。样例输入78975948样例输出987984原创 2016-07-18 12:01:01 · 746 阅读 · 0 评论 -
HDU-1022Train Problem I,简单栈模拟;
Train Problem I Time Limit: 2000/1000 MS (Java/Others)原创 2016-07-09 18:11:26 · 413 阅读 · 0 评论 -
Codeforces Round #269 (Div. 2)-D. MUH and Cube Walls,KMP裸模板!
D. MUH and Cube Walls 说实话,这题看懂题意后秒出思路,和顺波说了一下是KMP,后来过了一会确定了思路他开始写我中途接了个电话,回来kaungbin模板一板子上去直接A了。 题意:有两座城堡,每座城堡有一定的形状分别由高度区分。求第一座城堡中有多少个区间的形状和第二座城堡相似。连续一段区间高度可以任意变,但他们的相对位置是不变的。 思路:基于一段原创 2016-12-04 11:02:13 · 635 阅读 · 0 评论 -
POJ1703-Find them, Catch them 并查集构造
Find them, Catch them 好久没有做并查集的题,竟然快把并查集忘完了。 题意:大致是有两个监狱,n个犯人,m次操作,每次操作可以是查询也可以是确定两个人是否在同一个监狱里。 思路:其实这题完全可能做出来,结果就是没做出来。理清思路还是很好想的,我们用一个并查集来把能够确定在同一监狱里的人放在一个集合里,用一个diff数组把确定不同监狱的两个犯人分原创 2016-11-26 18:56:07 · 339 阅读 · 0 评论 -
POJ-1200 Crazy Search,人生第一道hash题!
Crazy Search 真是不容易啊,人生第一道hash题竟然是搜博客看题解来的。 题意:给你一个包含m种字符的字符串,求长度为n的不同子串有多少个。 将每个字串化为一个具体的数然后存入数组标记即可,如果重复出现肯定不用再加了。那么怎么化为一个数呢,这里用的方法是先将每个字符对应一个数,然后每个长度为n的子串就有了一个连续的数,将这个数段转化为m进制下的原创 2017-01-14 10:24:25 · 1091 阅读 · 0 评论 -
POJ-2002 Squares,哈希模板+数学公式!
Squares 题意:二维坐标轴给出n个点求有多少个正方形。 要是平时做比赛的话毫无疑问会想到用二分去写这道题,但毕竟出现在hash专题里,所以自然用hash去攻克,但是完全没有思路,于是,,网上找了题解,让我感叹的是我们做hash的题怎么知道用哪种hash函数呢。。这道题以坐标平方和再对hash数组大小取余,这样离散化感觉有点钻数据空子,但hash是有处理冲突的能力的,存在冲原创 2017-01-15 08:15:37 · 443 阅读 · 0 评论 -
POJ-3481 Double Queue,Treap树和set花式水过!
Double Queue 本打算学二叉树,单纯的二叉树感觉也就那几种遍历了, 无意中看到了这个题,然后就花了两天时间又去学了学Treap树,真的不好理解,真应该从基础开始的,但我比较倔强,看到这题一定要先做了再说。上午和某公众号交流了一下,初学,不明白为什么要借助随机优先值来修正,而这题本身自带优先值,为什么不能用这个来修正呢,给出的回答是:为了保证平衡,因为键值生成的BST树有很多种形态原创 2017-01-16 17:24:39 · 776 阅读 · 0 评论 -
HDu-1247 Hat’s Words,字典树裸模板!
Hat’s Words 题意:给出一张单词表求有多少个单词是由单词表里的两个单词组成,可以重复!按字典序输出这些单词。 思路:先建一个字典树,然后枚举每个单词,把每个单词任意拆分两部分然后查找。 目测数据不强,开始不知道单词长度都不敢下手了。。struct tree{ bool f; tree *next[N]; tree() {原创 2017-01-12 17:07:23 · 337 阅读 · 0 评论 -
POJ-1442 Black Box,treap名次树!
Black Box 唉,一天几乎就只做了这道题,成就感颇低啊! 题意:有一系列插入查找操作,插入每次在有序数列中插入一个数,保证插入后数列还是有序,初始数列为空,每次查询一个排名为i的数,第i次查询排名为i的数。给你两个数列,第一个是插入数的顺序,第二个是每次查询发生在插入第U(i)个数之后。具体看样例,说实话我也理解了挺久,数列1 2 6 6 表示的是第一次查询是在插入第一个原创 2017-01-17 16:48:36 · 733 阅读 · 0 评论 -
SPOJ - ADAQUEUE ,双端队列简单运用!
ADAQUEUE - Ada and Queue 表示这题是学弟带的榜,题还没看完,学弟吐了一句:这不就是双端队列嘛。于是掏出布满尘埃的《曾粽根ACM程序设计》,嗯,确实是裸题,现学现做。 题意:若干操作,每次可以在队首加入元素,可以在队尾加入元素,也可以翻转整个序列,查询最前面的或者最后面的数。操作数10^6。 除了翻转不用实际操作,其他的就是双端队列加入和删除操作了,若是原创 2017-04-09 11:52:24 · 587 阅读 · 0 评论 -
第四届河南省程序设计大赛-表达式求值,双栈过!
表达式求值时间限制:3000 ms | 内存限制:65535 KB难度:3 -> Link 表达式求值一直是河南省赛的必考题,所以无论如何这个暑假也要搞会。 这道题难倒是不难,就是开始没找到合适的思路原创 2016-07-11 10:07:51 · 844 阅读 · 5 评论