![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
-------------数据结构-------------
The___Flash
这个作者很懒,什么都没留下…
展开
-
Basic Data Structure (HDU - 5929,双端栈模拟 + 思维)
一.题目链接:HDU-5929二.题目大意:有栈一枚,n 步 4 种操作.PUSH x:将元素 x 压入栈中.( x 非 0 则 1)POP:弹出栈顶首元素.REVERSE:将栈逆序.QUERY:定义一种操作 nand.若栈为空则输出 "Invalid."否则输出nandnand .... nand0 nand 0 = 10 nand 1 =...原创 2019-03-06 17:19:13 · 194 阅读 · 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 · 161 阅读 · 0 评论 -
Snowy Smile (HDU - 6638,稀疏矩阵子矩阵最大和)
一.题目链接:HDU-6638二.题目大意:求稀疏矩阵子矩阵最大和.三.分析:离散 x 坐标,枚举 x.线段树维护区间最大子段和将的算法优化到了详见代码.四.代码实现:#include <set>#include <map>#include <ctime>#include <queue>#inc...原创 2019-08-14 14:32:08 · 212 阅读 · 0 评论 -
Sliding Window (POJ - 2823,单调队列求区间最值)
一.题目链接:POJ-2823二.题目大意:有 n 个数,用一个窗口去扫描,窗口大小为 k.求每次扫描得到的最小值与最大值.三.分析:单调队列 O(N)扫描即可.又加深了自己对单调队列的理解.四.代码实现:#include <set>#include <map>#include <ctime>#include <...原创 2019-08-09 15:26:44 · 115 阅读 · 0 评论 -
最大子序和(算法竞赛进阶指南 P53,单调队列)
一.题目链接:最大子序和二.题目大意:给出长度为 n 的序列,求长度不超过 m 的最大子序和.三.分析:单调队列模板题ps:这里 q[] 存的是开区间左端点大佬的博客:单调队列学习四.代码实现:#include <set>#include <map>#include <ctime>#include <queue&...原创 2019-08-05 10:55:21 · 165 阅读 · 0 评论 -
黑匣子(落谷P1801,对顶堆动态维护动态第 k 小值)
一.题目链接:P1801二.题目大意:中文题不解释.三.分析:没什么可分析的,就是想存个板子.四.代码实现:#include <set>#include <map>#include <ctime>#include <queue>#include <cmath>#include <stack&g...原创 2019-07-26 20:52:06 · 219 阅读 · 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 · 115 阅读 · 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 · 126 阅读 · 0 评论 -
Team Queue (POJ - 2259 ,队列模拟)
一.题目链接:POJ-2259二.题目大意:有 t 个小组排队,每个小组有若干人.当一个人入队时,如果队伍中已有与他同一队伍的人,那么这个人就插到同一队伍人的最后,否则插到队伍最后.先给出若干入队和出队指令,要求输出出队顺序.三.分析:易得:在队伍中,组号相同的人肯定是排在一起的.也就是说队伍是由组号以及该组的人数确定的.那不妨,设置 q[0] 为该队伍的组号排...原创 2019-08-03 10:11:30 · 167 阅读 · 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 · 160 阅读 · 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 · 126 阅读 · 0 评论 -
K-th Number (POJ - 2104,可持久化线段树模板)
一.题目链接:POJ-2104二.题目大意:求区间第 k 大值.三.分析:因上午迟到,被队长强迫学习主席树.....今天心血来潮,想学习一下主席树!!!因为这题是模板,具体的内容这里不再详谈,只写一些自己对主席树的理解.主席树的建树过程插入两个节点:1,2 (n == 4)起初是一颗空树然后插入第一个节点然后第 2 个节点可以看到每插入一...原创 2019-07-29 15:48:10 · 205 阅读 · 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 · 141 阅读 · 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 · 170 阅读 · 0 评论