随笔分类 - 杂题题解
摘要:题面 题目传送门 前言 绿题,爆切我 世界,遗忘我 正文 这是一个经典操作:找到一个值为为最大值的最大区间长度/区间个数 那么在单调栈里这个数的前一个数就是他的左边界限,反过来做一下就能确定右端点 最小值一样 直接贴一个很清晰的题解代码 代码 #include<iostream> #include<
阅读全文
摘要:题面 题目传送门 前言 呜呜呜,云落好菜 正文 圆规正传 我们枚举 那么 一定是 的后缀最小值的位置 并且由于 要是区间最大值,也就是说,第二个后缀最大值的位置一定在 左面 那么我们就通过 第二个后缀最大值的位置,二分出最靠右的 \(A
阅读全文
摘要:题面 题目传送门 前言 晦涩的题意 正文 后缀最大值? 如果一个数在你后面还比你大 那么你无论如何都成为不了后缀最大值 那么维护一个单调递减的单调栈即可 注意要输出后缀最大值下标的异或和 迷惑的值域之 代码 #include<iostream> #include
阅读全文
摘要:题面 题目传送门 前言 思维难度:紫- 代码难度:黑 正文 对于每一种约束,都可以将其抽象为一条有向边 注意到有 个约束,并且对于图上的每一个结点,都有且仅有一条出边 所以整张图形如内向基环树 建模建完了,该上算法了 考虑拆分成若干个子问题回答 Subtask 1 所谓的“暴力”分 因为
阅读全文
摘要:题面 题目传送门 前言 前置知识:DP,线段树合并 口齿不清的云落又双叒叕上线了…… 第四道黑题~ 正文 集训期间,shr 说:“这是一道线段树合并优化 DP” 其实 DP 是很好想到的,毕竟求方案数嘛~ 但是怎么 DP,或者说怎么设置状态并转移? 比较朴素的做法:依照题意,列出状态 设 \(f_{
阅读全文
摘要:题面 题目传送门 前言 试图口述讲解但失败的云落 正文 前置芝士:线段树合并 这个是相对来说比较好理解的 对于待合并的两棵线段树,我们递归性地将每个节点合并 比如这道题我们需要求某一个最值对应的种类 所以比较容易想到,用线段树维护四个信息 左子树编号 右子树编号 多种救济粮的
阅读全文
摘要:题面 题目传送门 前言 水题 疑似图论乱入 正文 说实话,为了追求更优秀的复杂度,云落已经很久没有写过邻接表力 链式前向星成为了主流…… 今天陪陪“老朋友” 无向边 然后其实就没力,相信各位也能秒杀吧! 代码 #include<iostream> #include<vector> #define e
阅读全文
摘要:题面 题目传送门 前言 还真是挺悲剧的,链表模板题后面跟一个链表应用题…… 正文 我们考虑一下 nxt 数组的本质是什么 对于单链表来说(虽然云落超级喜欢用双链表,就像火腿肠爱平衡树那样), 对应的就是 的后继 所以尽管字符串中存在 “[”或“]”,但是本质上不影响我们
阅读全文
摘要:题面 题目传送门 前言 其实就是一个模板题…… 正文 云落一开始算错复杂度了,挤破脑袋都没想明白怎么不用链表实现(甚至手搓一棵平衡树) 后来尝试性的使用动态数组 vector 嗯~很成功 最后发现是自己复杂度算错了,大悲 (看来有必要恶补一下小学数学了……) 代码 #include<iostream
阅读全文
摘要:题面 题目传送门 前言 好理解的题面+好看的数据范围=恶心的码量 这种题怎么会整这么多分讨啊! 正文 把矩阵拆成左上角,右下角两个三角形分开模拟 每个三角形中,分类讨论奇数斜行与偶数斜行不同的方向 注意奇数阶矩阵与偶数阶矩阵不同即可 代码 #include<iostream> using names
阅读全文
摘要:题面 luogu 找不到原题,把 OJ 上的贴过来力! 题目传送门 前言 原来云落打暴力也会挂分…… 正文 离线做法! 当棋局没有结束,并且触发了某种特殊条件(如一方获胜,或不合法的落子),棋局会立即终止 在代码表示中,直接 return 0 会终止整个进程,会让数据无法完全读入…… 所以需要记录每
阅读全文
摘要:题面 题目传送门 前言 字符串练手题 正文 读入字符串不解释 维护一个指针 ,记录完成一次跳跃前的位置下标 跳跃的过程可以转化为:扫描 右方第一个“元音”字母的位置 令这个下标为 ,则有 每次匹配
阅读全文