
栈、队列、链表
lemondinosaur
转圈圈 不停转圈圈 然后摔倒
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
#trie#洛谷 4098 JZOJ 3226 ALO
题目 分析 首先肯定会想到建一棵可持久化01trie,但是关键是次大值,所以考虑从小到大排序,那么每次该数都会有一段选择的区间,那么考虑把它合并给左右,用该值当次大值在trie中找到区间中最大的一个,其实这道题实际操作比理论还要难,至少我是这么认为的 代码 #include <cstdio> #include <cctype> #include <deque>...原创 2019-10-23 21:34:29 · 171 阅读 · 0 评论 -
2019.01.21【NOIP提高组】模拟 B 组
迟到的解题报告JZOJ 4208 线段树什么的最讨厌了题目分析代码JZOJ 4209 【五校联考1day1】已经没有什么好害怕的了题目分析代码JZOJ 4210 【五校联考1day1】我才不是萝莉控呢题目分析 JZOJ 4208 线段树什么的最讨厌了 题目 询问多段区间,是否存在一个[0∼n][0\sim n][0∼n]的线段树为该区间 分析 那么区间[l∼r][l\sim r][l∼r]可以扩...原创 2019-01-22 09:48:50 · 378 阅读 · 0 评论 -
#动态规划,栈,对顶栈#hdu 4699 Editor
题目 有五种操作 III x:x:x:在当前光标处插入一个整数x,插入后光标移动到x之后 D:D:D:删除光标前的一个整数 L:L:L:光标向左移动一个位置 R:R:R:光标向右移动一个位置 QQQ x:x:x:在位置xxx之前的最大的前缀和 分析 这样的操作不难想到对顶栈的方法,而栈AAA表示光标处(栈顶)至开头(栈底)的子序列,栈BBB表示光标处至末尾的子序列,sums...原创 2018-08-15 12:03:28 · 212 阅读 · 0 评论 -
#队列#洛谷 2827 蚯蚓
题目 求mmm秒内,每一秒被切断的蚯蚓被切断前的长度(有mmm个数);mmm秒后,所有蚯蚓的长度(有n+mn+mn+m个数)。PS:长度为x的蚯蚓被切成uvx和x−uvxuvx和x−uvx\frac{u}{v}x和x-\frac{u}{v}x 分析 用优先队列(堆)TLE,后,发现被切的蚯蚓是单调递减的,那么队列代码就弄好了。 85分代码 #include <cstdi...原创 2018-07-23 11:20:49 · 275 阅读 · 0 评论 -
#链表,倍增优化dp#洛谷 1081 JZOJ 3101 开车旅行
题目链接 分析 什么辣鸡水题,我这种大佬做这种水题? 代码 #include <cstdio> #include <cctype> #include <algorithm> #define rr register #define abs(x) ((x)<0?-(x):(x)) using namespace std; struct liSt{int v...原创 2019-04-27 15:03:31 · 201 阅读 · 0 评论 -
2019.06.01 【NOIP提高组】模拟 A 组
解题报告前言JZOJ 6191 Exchange题目分析代码JZOJ 4802 探险计划分析代码JZOJ 4800 周末晚会题目分析代码后续 前言 这可是六一呀 JZOJ 6191 Exchange 题目 分析 首先可以预处理出一个位置的后继,这个可以通过类似于链表的结构实现,接着这就是关键了,这样貌似并没有什么意义,把这些区间按右端点从小到大排序离线询问,那只要预处理一个点的后继能散播到最...原创 2019-06-05 20:21:09 · 446 阅读 · 0 评论 -
2019_8_6 模拟赛
解题报告前言T3 矩形统计题目分析代码T5 矩形反色题目分析代码 前言 我太菜了,虽然现在感觉过水,但是比赛时是全脸懵逼,但是思路真的太水了 T1 蛋糕切割(过水) T2 膜拜神牛(过水) T3 矩形统计 题目 有一张边长为NNN的方格纸(有若干破损),问这张纸能够裁出多少矩形。 分析 类比于POJ 2559,可以把某一行的某一个方格向上延伸,这样形成一个柱形图,也就是枚举每一行的方格,问...原创 2019-08-06 17:35:30 · 151 阅读 · 0 评论 -
#单调栈#BZOJ 1057 洛谷 1169 棋盘制作
#include <cstdio> #include <cctype> #include <cstring> #define rr register #define max(a,b) ((a)>(b)?(a):(b)) #define min(a,b) ((a)<(b)?(a):(b)) using namespace std; int n,m,ab...原创 2019-08-23 19:00:51 · 163 阅读 · 0 评论 -
2019.08.17【NOIP提高组】模拟 A 组
解题报告前言JZOJ 6290 倾斜的线题目分析代码JZOJ 6305 最小值题目分析代码JZOJ 6307 安排题目分析代码 前言 毒瘤出题人 JZOJ 6290 倾斜的线 题目 分析 考虑按照这些点与斜率p/qp/qp/q的截距从小到大排序,那么可以证明相邻两个点更接近斜率,然后暴力求解,时间复杂度O(nlogn)O(nlogn)O(nlogn) 代码 #include <cst...原创 2019-08-17 20:08:45 · 298 阅读 · 1 评论 -
2018.07.19【2018提高组】模拟C组
前言: 早上完全起不来了,9点被回来的舍友叫醒,orz JZOJ 3461 小麦亩产一千八 题目 假设第0个格子有1粒麦子,第1个格子有p粒麦子,之后每一个格子放入前两个格子的小麦数之和的小麦,若第a个格子有x粒麦子,问是否存在p,若存在,问第b个格子有多少粒麦子,否则输出-1(给出a,x,p) 分析 按照这样,得到数列1,p,p+1,2p+1,3p+2,5p+3,8p...原创 2018-07-19 14:20:35 · 210 阅读 · 0 评论 -
#队列#codevs 2422 洛谷 2564 生日礼物
代码 #include &lt;cstdio&gt; #include &lt;queue&gt; #include &lt;algorithm&gt; struct rec{int x,rk;}a[1000001]; int n,m,kind[61]; std::queue&lt;int&gt;q; int in(){ int ans=0; ch原创 2018-08-31 22:58:54 · 361 阅读 · 0 评论 -
#单调栈#洛谷 2947 向右看齐
题目 若i&lt;j且hi&lt;hji&lt;j且hi&lt;hjijjj是iii的仰望对象,问每头奶牛最近的仰望对象。 分析 这道题可以用单调递减栈做,反向枚举每一头牛的身高,当栈内无法成为仰望对象时元素从栈顶弹出,当栈为空时说明没有仰望对象,否则栈顶就是仰望对象 代码 #include &lt;cstdio&gt; #include &原创 2018-08-15 08:09:34 · 396 阅读 · 0 评论 -
#队列#poj 2259 Team Queue
题目 有nnn个小组排队,当一个人来到队伍时,若队伍没有小组成员,则排在队尾,否则插在小组最后面,对于每一个出队指令,输出每一个人。 分析 可以用一个大的队列装入小组的编号,当小组没人时创建一个新的小组编号并不断入队,出队时则判断小组的人数是否为0,若无人就退出大队列。 代码 #include <cstdio> #include <queue> #...原创 2018-08-15 09:59:57 · 254 阅读 · 0 评论 -
#链表 or 堆,对顶堆#poj 3784 Running Median
题目 动态求中位数 分析(离线) 这道题可以用链表做,倒着推,一个个从链表内删除,求中位数之前需要排序,当然需要标记每个数在链表出现的位置 链表代码 #include &lt;cstdio&gt; #include &lt;cstring&gt; #include &lt;algorithm&gt; #define mod 10007 stru原创 2018-08-16 16:41:01 · 212 阅读 · 0 评论 -
#单调栈#poj 2559 洛谷 SP1805 Largest Rectangle in a Histogram
题目 在一条水平线上方有若干个矩形,求这些矩形的并集中最大矩形的面积。 分析 这道题目可以用单调栈的,维护一个单调递增的栈,从左到右枚举每一个矩形,如果当前矩形比栈顶高,直接入队,否则不断取出栈顶,直到栈为空或当前矩形比栈顶高,在出栈时,不断累计矩形的宽度,累计答案,并把最后的矩形入栈。 代码 #include &lt;cstdio&gt; #include &lt;...原创 2018-08-15 08:46:43 · 253 阅读 · 0 评论 -
#队列 or 链表#洛谷 2776 codevs 5183 小组队列
题目 poj 2259 队列代码 #include &lt;cstdio&gt; #include &lt;queue&gt; #include &lt;cstring&gt; using namespace std; queue&lt;int&gt;q[301]; int n,a[100001]; int in(){ int原创 2018-08-15 10:40:33 · 356 阅读 · 0 评论 -
#二分,单调队列,动态规划#洛谷 3957 跳房子
题目 分析 f[i]表示跳到i时的最大值f[i]表示跳到i时的最大值f[i]表示跳到i时的最大值,很容易可以得到 f[i]=max{f[last]}+s[i]f[i]=max{f[last]}+s[i]f[i]=max\{f[last]\}+s[i],然而也很容易知道需要用单调队列维护,但是求到答案又能怎么做,二分答案,于是代码就出来了。 代码 #include &l...原创 2018-07-16 16:20:44 · 300 阅读 · 0 评论 -
#单调队列,动态规划#洛谷 2627 jzoj 2202 2321(高中)codevs 4654 修剪草坪
题目 在n头奶牛里选择若干头,使连续的奶牛不超过k头并让总价值最大。 分析 这道题正向选择比较难选,所以就想到了n头奶牛都选并去掉奶牛后使总价值最大。 用单调队列维护,时间复杂度O(n) 代码 #include &amp;amp;amp;amp;lt;cstdio&amp;amp;amp;amp;gt; #include &amp;amp;amp;amp;lt;cctype&amp;a原创 2018-07-16 16:56:25 · 236 阅读 · 0 评论 -
#单调队列,动态规划#洛谷 1725 jzoj 2501 琪露诺
题目 一列格子依次编号0到N,在格子i时,移动到区间[i+l,i+r]中的任意一格,求跳到(过)N的最大权值 分析 可以用动态规划求出答案,但求最大值时,可以用单调队列维护。f[i]=f[q[head]]+xf[i]=f[q[head]]+xf[i]=f[q[head]]+x 代码 #include <cstdio> #include <cctype>...原创 2018-07-16 18:45:33 · 299 阅读 · 0 评论 -
#链表#洛谷 1160 队列安排
链表结构,双向链表。 #include &lt;cstdio&gt; using namespace std; struct link{int l,r,data;}a[100001]; int n,m,j=1; int main(){ scanf("%d",&amp;n); a[1].data=1; for (int i=2;i&lt;=n;i++){原创 2018-02-23 11:34:09 · 331 阅读 · 0 评论