
-------------数据结构-------------
The___Flash
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Basic Data Structure (HDU - 5929,双端栈模拟 + 思维)
一.题目链接: HDU-5929 二.题目大意: 有栈一枚,n 步 4 种操作. PUSH x:将元素 x 压入栈中.( x 非 0 则 1) POP:弹出栈顶首元素. REVERSE:将栈逆序. QUERY:定义一种操作 nand. 若栈为空则输出 "Invalid." 否则输出nandnand .... nand 0 nand 0 = 1 0 nand 1 =...原创 2019-03-06 17:19:13 · 264 阅读 · 0 评论 -
Parity game (POJ - 1733,边带权 || 拓展域 并查集)
一.题目链接: POJ-1733 二.题目大意: 小 A 有一个 01 串,小 B 对小A进行 m 次询问,每次询问给出一个区间,小 B 则给出此区间 1 的奇偶性. 小 B 怀疑 小 A 有时会说谎(自我矛盾) 输出至少多少个回答后可以判定 小 A 在说谎. 三.分析: 如果用 sum[i] 表示 01 串的 1 的个数的前缀和. 那么在第 i 次询问中 如果 sum[l ~...原创 2019-09-04 21:06:38 · 215 阅读 · 0 评论 -
Snowy Smile (HDU - 6638,稀疏矩阵子矩阵最大和)
一.题目链接: HDU-6638 二.题目大意: 求稀疏矩阵子矩阵最大和. 三.分析: 离散 x 坐标,枚举 x. 线段树维护区间最大子段和 将的算法优化到了 详见代码. 四.代码实现: #include <set> #include <map> #include <ctime> #include <queue> #inc...原创 2019-08-14 14:32:08 · 311 阅读 · 0 评论 -
Sliding Window (POJ - 2823,单调队列求区间最值)
一.题目链接: POJ-2823 二.题目大意: 有 n 个数,用一个窗口去扫描,窗口大小为 k. 求每次扫描得到的最小值与最大值. 三.分析: 单调队列 O(N)扫描即可. 又加深了自己对单调队列的理解. 四.代码实现: #include <set> #include <map> #include <ctime> #include <...原创 2019-08-09 15:26:44 · 167 阅读 · 0 评论 -
最大子序和(算法竞赛进阶指南 P53,单调队列)
一.题目链接: 最大子序和 二.题目大意: 给出长度为 n 的序列,求长度不超过 m 的最大子序和. 三.分析: 单调队列模板题 ps:这里 q[] 存的是开区间左端点 大佬的博客:单调队列学习 四.代码实现: #include <set> #include <map> #include <ctime> #include <queue&...原创 2019-08-05 10:55:21 · 215 阅读 · 0 评论 -
黑匣子(落谷P1801,对顶堆动态维护动态第 k 小值)
一.题目链接: P1801 二.题目大意: 中文题不解释. 三.分析: 没什么可分析的,就是想存个板子. 四.代码实现: #include <set> #include <map> #include <ctime> #include <queue> #include <cmath> #include <stack&g...原创 2019-07-26 20:52:06 · 268 阅读 · 0 评论 -
Find the answer (HDU - 6609,权值线段树)
一.题目链接: HDU-6609 二.题目大意: 有 n 个数,到第 i 个数时,如果 sum > m,要求在 [1, i - 1] 中删除一些数,使得 sum ≤ m. 求最少删除数的个数. 三.分析: 首先,删除的话肯定是要从最大数开始删. 即:将数组顺序排列,从大往小删除. 离散化后的权值线段树则可以实现这一点. 即:查询从数组 [1, i - 1]中,在满足 sum...原创 2019-07-31 15:11:12 · 165 阅读 · 0 评论 -
Largest Rectangle in a Histogram (POJ - 2559,单调栈入门题)
一.题目链接: POJ-2559 二.题目大意: 有 n 个长方形排在一条线上,宽均为 1 ,给出每个矩形的高度. 用一个长方形木板截取,求截得的最大面积. 三.分析: 沙比题,分析个毛,单调栈入门题. 好的,就这样. 四.代码实现: #include <set> #include <map> #include <ctime> #includ...原创 2019-07-18 20:23:22 · 159 阅读 · 0 评论 -
Team Queue (POJ - 2259 ,队列模拟)
一.题目链接: POJ-2259 二.题目大意: 有 t 个小组排队,每个小组有若干人. 当一个人入队时,如果队伍中已有与他同一队伍的人,那么这个人就插到同一队伍人的最后,否则插到队伍最后. 先给出若干入队和出队指令,要求输出出队顺序. 三.分析: 易得:在队伍中,组号相同的人肯定是排在一起的. 也就是说队伍是由组号以及该组的人数确定的. 那不妨,设置 q[0] 为该队伍的组号排...原创 2019-08-03 10:11:30 · 228 阅读 · 0 评论 -
Editor (HDU - 4699,对顶栈模拟数据结构)
一.题目链接: HDU-4699 二.题目大意: 模拟实现以下操作: I x:在光标后插入数 x,并将光标移到 x 后面. D:删除光标的前一个数. L:将光标左移. R:将光标右移. Q x:求 1 ~ x 中前缀和的最大值. 三.分析: 与对顶堆类似,这里用对顶栈实现. 即准备两个栈,光标前面的为 s1,光标后面的为 s2. 同时开两个数组,一个存前缀和,一个存前缀和的...原创 2019-08-02 19:27:39 · 220 阅读 · 0 评论 -
D-query (SPOJ - DQUERY,单点修改主席树)
一.题目链接: SPOJ-DQUERY 二.题目大意: 求区间 [l, r] 中不同元素的个数. 三.分析: 先考虑区间右端点 r 的情形. 设有 5 个元素{1,2,2,3,5},每个元素最后出现的位置为{1,0,1,1,1}. 那么,区间[1,5]中不同元素的个数为 sum[5] - sum[0]. 区间[1,4]中不同元素的个数为 sum[5] - sum[1]. 其他区间...原创 2019-07-29 20:47:18 · 163 阅读 · 0 评论 -
K-th Number (POJ - 2104,可持久化线段树模板)
一.题目链接: POJ-2104 二.题目大意: 求区间第 k 大值. 三.分析: 因上午迟到,被队长强迫学习主席树..... 今天心血来潮,想学习一下主席树!!! 因为这题是模板,具体的内容这里不再详谈,只写一些自己对主席树的理解. 主席树的建树过程 插入两个节点:1,2 (n == 4) 起初是一颗空树 然后插入第一个节点 然后第 2 个节点 可以看到每插入一...原创 2019-07-29 15:48:10 · 252 阅读 · 3 评论 -
Replace To Make Regular Bracket Sequence (CodeForces - 612C ,栈实现括号配对)
一.题目链接: CodeForces-612C 二.题目大意: 定义有以下 4 种配对方式 : ( ) 、[ ] 、{ } 、< >. 一个字符串中如果每一个字符都有配对,则称之为 RBS. 若 s1 为 RBS,则<s1>s2, {s1}s2, [s1]s2, (s1)s2 也为 RBS. 三.分析: 将左字符压入栈,然后与后面的第一个右字符匹配即可...原创 2019-01-30 21:50:25 · 172 阅读 · 0 评论 -
Distance in Tree (CodeForces - 161D,点分治)
一.题目链接: CodeForces-161D 二.题目大意: 给一颗无根树,问有多少个点对,使其之间的距离为 k. 三.分析: 点分治的模板题. 这里只是存个板子(溜走 ~~ 点分治学习 四.代码实现: #include <cstdio> #include <algorithm> using namespace std; const int M = ...原创 2019-09-21 10:40:26 · 218 阅读 · 0 评论