摘要: " 题目传送门 " 这是一道双倍经验题 "Luogu P2195" 虽然Luogu P2195的题意很迷,但确实是双倍经验 先预处理出每棵树的直径,并用并查集维护哪些点在同一棵树里 对于$1$操作,直接输出就可以了 对于$2$操作,显然在两棵树直径的中点处连边最优。再用并查集维护一下即可 阅读全文
posted @ 2019-11-14 11:41 MorsLin 阅读(133) 评论(0) 推荐(0)
摘要: " 题目传送门 " 第一次写二维线段树 二维线段树模板题 感觉二维线段树很迷~~代码倒是挺好记~~ 还得再理解理解 阅读全文
posted @ 2019-11-14 11:37 MorsLin 阅读(129) 评论(0) 推荐(0)
摘要: " 题目传送门 " 神仙题 Alice和Bob怎么整天在一起玩一些神仙游戏 原序列为$x$,输入的序列为$a$。 因为题目中是 上升子序列 和 下降子序列 ,所以原序列中相同的元素没有贡献,因此不妨设$x$为$1$~$n$的一个排列 $a_i$是以$x_i$为结尾的最长上升子序列的长度,所以对于所有 阅读全文
posted @ 2019-11-14 11:36 MorsLin 阅读(158) 评论(0) 推荐(0)
摘要: " 比赛传送门 " 得出经验,打$CF$倒着开题比较爽。C题看了好久,没找到规律,看了看其他题,发现最后一题是个半裸的Tarjan 暴涨$236$分,飘了 不过新的名字颜色好丑,像$\color{blue}{\text{电脑蓝屏的那种蓝}}$ A. Integer Points 偶数会和偶数交于整数 阅读全文
posted @ 2019-11-14 11:33 MorsLin 阅读(190) 评论(0) 推荐(0)
摘要: " 题目传送门 " “电脑运行速度很快!24的阶乘也不过就620448401733239439360000,yyy你快写个程序来算一算” 我想你可能需要 "神威·太湖之光" 因为一共就24张卡片,可以状压 设 ,表示使用集合$S$的卡片的方案数, 表示使用集合$S$的卡片所能到达的距离 转移就很简单 阅读全文
posted @ 2019-11-14 11:31 MorsLin 阅读(100) 评论(0) 推荐(0)
摘要: " 题目传送门 " 第一次分块 分块,将每一个块内部排序 对于A操作,块内部二分查找,两边的零散部分在原数组中暴力查找 对于M操作,给整块打上标记,两边的零散部分暴力修改 阅读全文
posted @ 2019-11-14 11:30 MorsLin 阅读(112) 评论(0) 推荐(0)
摘要: " 题目传送门 " 第一次做用线段树维护DP的题目 算是个带权区间覆盖问题(瞎起的名字) 先将所有区间按左端点的升序排序,然后依次枚举 显然可以写出DP方程: 设 表示从要覆盖的区间的左端点$s$到点$i$之间(包括$i$)所有的点全被覆盖所需要的最小花费 其中 、``cow[p].t p``个区间 阅读全文
posted @ 2019-11-14 11:29 MorsLin 阅读(128) 评论(0) 推荐(0)
摘要: " 题目传送门 " ~~好奇怪的人物名字~~ 和 "这道题" 的树状数组解法思想相同 我们要找区间中至少出现了两次的颜色,则区间内第一次出现的颜色没有价值,只有第二次出现的颜色才会对答案有所贡献。 先预处理出各个位置 ,表示下一个该位置上的颜色出现的位置。 将询问按左端点排序,对于一个询问,从左向右 阅读全文
posted @ 2019-11-14 11:29 MorsLin 阅读(80) 评论(0) 推荐(0)
摘要: " 题目传送门 " 这道题的思路有点像 "这篇博客" 用线段树维护区间和、区间最大值。若区间最大值小于模数,则直接返回,不对此区间进行操作 阅读全文
posted @ 2019-11-14 11:28 MorsLin 阅读(96) 评论(0) 推荐(0)
摘要: " 比赛传送门 " ~~CodeChef = ccf~~ S10E 水题,直接模拟即可 SAKTAN 行和列分开处理,因为 奇数+偶数=奇数 ,所以分别求出加了偶数次的行$ea$和列$eb$,加了奇数次的行$oa$和列$ob$最后答案就是$oa\times eb + ea \times ob$ MA 阅读全文
posted @ 2019-11-14 11:26 MorsLin 阅读(139) 评论(0) 推荐(0)
摘要: " 题目传送门 " 很妙的差分题目 分别找到画布上每种颜色的最上、最下、最左和最右,然后进行差分,求出每个位置至少涂了几次。如果涂的次数 ,则肯定不是先涂的 有一种特殊情况,如果涂的次数 ,但只有一种颜色,且 ,则一定不是先涂的 阅读全文
posted @ 2019-11-14 11:25 MorsLin 阅读(188) 评论(0) 推荐(0)
摘要: " 题目传送门 " 这守卫怕不是铁憨憨,互相$TK$欢乐多 如果没有墙的话,可以将它的行和列分别看成点,对于每一块空地$(i, j)$,在$i$、$j$之间连一条边,然后跑二分图匹配就好了 然后考虑墙的影响,墙会把一行或一列分成几段互不影响的区间,将这几段区间的行(列)标上不同号,表示它们互不影响, 阅读全文
posted @ 2019-11-14 11:21 MorsLin 阅读(100) 评论(0) 推荐(0)
摘要: " 题目传送门 " 我可以说方伯伯浪费粮食么…… 首先要知道一个结论: 每次操作的右端点一定是$n$ 因为如果拔高一段区间,区间内部的玉米的相对高度不会发生变化,区间左边的点贡献增加$x$,但区间右边的点贡献会减少。如果我们将这段拔高区间的右端点挪到$n$上,区间左边的点贡献还是会增加$x$,区间右 阅读全文
posted @ 2019-11-14 11:20 MorsLin 阅读(102) 评论(0) 推荐(0)
摘要: " 题目传送门 " 这紫题……有点水 自底向上合并,每次找儿子里面最小的合并 用了vector,常数有点大,开O2才过 阅读全文
posted @ 2019-11-14 11:19 MorsLin 阅读(104) 评论(0) 推荐(0)
摘要: " 题目传送门 " 数据结构学傻了…… 对每个颜色开一个vector,记录该颜色出现过的位置 查询操作直接在vector里二分查找$l,r$,一减就可以 修改操作直接二分后swap就可以了 阅读全文
posted @ 2019-11-14 11:18 MorsLin 阅读(104) 评论(0) 推荐(0)
摘要: " 题目传送门 " 奇妙的题目 把操作离线下来,二分第$q$位置上的数$x$,将排列中大于$x$的数记为$1$,小于$x$的数记为$0$,然后就可以很简单的用线段树维护每个操作 最后判断$q$位置上的数是否为$1$ 时间复杂度$O(n\log^2 n)$ 阅读全文
posted @ 2019-11-14 11:13 MorsLin 阅读(119) 评论(0) 推荐(0)
摘要: " 题目传送门 " DP是不可能DP的,只会搜索 先二分距离,然后此题转化为最小点覆盖,即选择最少的点去覆盖关键节点,覆盖范围为二分的$mid$ 对于覆盖,大部分题解都是用的DP,但是用剪枝后的搜索也能水过去 对于每个关键节点,如果它已经被覆盖了,就不管它,否则选择它的$k$级祖先进行覆盖 在用DF 阅读全文
posted @ 2019-11-14 11:12 MorsLin 阅读(116) 评论(0) 推荐(0)
摘要: " 题目传送门 " 简化题意 :一颗带有点权、以$1$为根的树,对于每个节点$x$,求出$x$的子树中有多少个点满足该点的点权大于$x$的点权 先将点权离散化 对这棵树进行DFS,在DFS到$x$时,加入该点点权,然后在DFS它的子树前记录一下当前有多少节点大于$x$,记为$last$。在回溯到该节 阅读全文
posted @ 2019-11-14 11:11 MorsLin 阅读(58) 评论(0) 推荐(0)
摘要: " 题目传送门 " 先把每两个点之间的LCA求出来 画图模拟,显然可以~~(也可能并不显然)~~发现集合点选为深度最小的LCA时最优 阅读全文
posted @ 2019-11-14 11:09 MorsLin 阅读(116) 评论(0) 推荐(0)
摘要: " 题目传送门 " 暴力乱搞大法好! 感觉这题难度有点虚,最多蓝题吧 一开始写了个没有一丝剪枝的搜索交了上去,水到了$60pts$ 于是加了个卡时,就$A$了 顺便说一句,数据略水(可能也是因为乱搞不好卡吧) 阅读全文
posted @ 2019-11-14 11:08 MorsLin 阅读(225) 评论(0) 推荐(0)
摘要: " 题目传送门 " 好久没写博客了…… 照这个速度,退役前怕是做不完网络流24题了 和方格取数其实差不多,还是黑白染色,建出图来之后跑匈牙利求最大匹配数就好了 最后答案是 格子数量 减去 障碍数量和最大匹配数 其实上面的代码在Luogu上会T掉一个点,可能被卡常了吧 ~~(死也不用dinic)~~ 阅读全文
posted @ 2019-11-14 11:07 MorsLin 阅读(129) 评论(0) 推荐(0)
摘要: " 比赛传送门 " 真的是好久没打$CF$了,不过这次做出来四道题(一共六道),虽然第三题$FST$了,不过还是涨了好多$rating$ 之前有两次发挥不佳,掉到了$1286$分,这次直接涨了$143$分,重回青名 A.City Day 日常送分题,模拟就好了 B.Water Lily 初中数学题, 阅读全文
posted @ 2019-11-14 11:06 MorsLin 阅读(140) 评论(0) 推荐(0)
摘要: " 题目传送门 " 好久没写博客了,咕咕咕 一开始自己想了想,搞了一颗线段树,结果$4$个标记,写到自闭 打开题解,仿佛打开了新世界的大门,让我知道了自己代码的丑陋 将所有的要进行操作的数从小到大排序,建一颗线段树,对它们进行统一修改 用线段树维护区间最大值和最小值,且支持区间加减、区间乘、区间加原 阅读全文
posted @ 2019-11-14 11:06 MorsLin 阅读(246) 评论(0) 推荐(0)
摘要: " 题目传送门 " 非常神仙的倍增题目 表示点$i$到点$j$之间是否存在一条长度为$2^k$的路径 表示点$i$到点$j$之间需要用几次跑路机 代码应该不难理解 阅读全文
posted @ 2019-11-14 11:03 MorsLin 阅读(102) 评论(0) 推荐(0)
摘要: " 题目传送门 " 这道题不是好久之前做的了 填一下网络流24题的坑 本质上是个最大权闭合图问题的模板 ~~(话说这么多问题,我怎么记得住)~~ 在源点$S$和每个实验之间连一条边权为实验利益的边 在每个实验和它需要的仪器之间连一条边权为$+\infty$的边 在仪器和汇点$t$之间连一条边权为仪器 阅读全文
posted @ 2019-11-14 11:02 MorsLin 阅读(111) 评论(0) 推荐(0)
摘要: " 题目传送门 " 好久之前做的+1,现在才写博客…… 填一下网络流24题的坑 对于输入的一条$(x, y)$的边,我们实际将它连成$(x, y+n)$的边,则此图一定为一张二分图 然后 最小路径覆盖$= n $二分图最大匹配 然后就可以愉快的跑匈牙利了 ~~说好的网络流呢~~ 上古码风警告 阅读全文
posted @ 2019-11-14 11:01 MorsLin 阅读(104) 评论(0) 推荐(0)
摘要: " 题目传送门 " 好久之前做的+2,现在才写博客…… 填一下网络流24题的坑 状压集合$B1,B2$,对于一个补丁$i$,向$B1_i$和$B2_i$之间连一条边权为所需时间的单向边 然后跑最短路就好了 ~~又是一道没有网络流的网络流24题~~ 阅读全文
posted @ 2019-11-14 10:57 MorsLin 阅读(136) 评论(0) 推荐(0)
摘要: " 题目传送门 " 好久之前做的,现在才写博客…… 填一下网络流24题的坑 一图胜千言,做了一张~~十分迷乱~~图 怎么建图应该一目了然 ~~然而并不~~ 因为很久之前就做过这题,所以码风清奇,请见谅 阅读全文
posted @ 2019-11-14 10:56 MorsLin 阅读(147) 评论(0) 推荐(0)
摘要: " 题目传送门 " 看了标签恍然大悟 我们可以二分所用的时间$t$,然后对于每一个武器,从源点向它们连长度为伤害$\times t$的边,然后武器向它们能攻击的敌人连长度为$\inf$的边,对于每个敌人,向汇点连长度为它们血量的边 然后跑最大流即可 因为要至少保留$2$位小数,为了便于处理,将所有生 阅读全文
posted @ 2019-11-14 10:50 MorsLin 阅读(119) 评论(0) 推荐(0)
摘要: " 题目传送门 " Uva变了,以后恐怕不能叫它Uva了…… 第一问还是很简单的,直接求最长公共子序列的长度,那么这两个字符串的长度 2 最长公共子序列的长度就是答案 第二问统计方案数还是有点意思的 要注意当 的时候,方案可以同时从这两边转移过来 阅读全文
posted @ 2019-11-14 10:48 MorsLin 阅读(69) 评论(0) 推荐(0)
摘要: " 题目传送门 " $DP$的实现也要下一下功夫,比如这题,知道转移方程却不会实现 定义 为区间$[i,j]$折叠的最短长度 然后就是区间$DP$的套路,枚举中间断点,然后转移 如何判断能否折叠,以及折叠后的处理没有想到 还要多加练习 阅读全文
posted @ 2019-11-14 10:45 MorsLin 阅读(98) 评论(1) 推荐(0)
摘要: " 题目传送门 " 直接暴力定义 是使对角为$(x1, y1),(x2, y2)$这个子矩形满足要求的最短切割线长度 因为转移顺序不好递推,采用记忆化搜索 阅读全文
posted @ 2019-11-14 10:44 MorsLin 阅读(71) 评论(0) 推荐(0)
摘要: " 题目传送门 " 难得能自己想出来一道蓝色的$DP$ 设 表示前$i$个数表示出取模结果为$j$时的最小$k$值, 表示区间$[i,j]$所表示数值取模后的结果,显然,转移为: 阅读全文
posted @ 2019-11-14 10:42 MorsLin 阅读(97) 评论(0) 推荐(0)
摘要: " 题目传送门 " 死因:不认真读题 首先,我们可以想到暴力枚举每段长度为$k$的区间,对于这一段区间,求将它变为同一高度的最小操作次数。显然,当我们取区间的中位数时,这段区间变为同一高度的次数最小。 操作次数为: 对于大于中位数的数,求和,减去中位数乘它们的个数 对于小于等于中位数的数,中位数乘它 阅读全文
posted @ 2019-11-14 10:42 MorsLin 阅读(87) 评论(0) 推荐(0)
摘要: " 题目传送门 " 最近做了好多“奶牛题” 好不容易把转移方程想出来了,却不会转移顺序 看了看某位$dalao$的博客,发现用记搜比较容易转移 阅读全文
posted @ 2019-11-14 10:41 MorsLin 阅读(91) 评论(0) 推荐(0)
摘要: " 题目传送门 " 最近做了好多“奶牛题” 完全没有思路,看了题解还有些迷 设 表示和节点$i$距离为$j$的节点的总数,$son$为$i$的儿子,$num$为儿子的数量 则转移方程为 这样可以保证不重不漏 $DP$顺序也要注意一下,难得没用深搜来转移 阅读全文
posted @ 2019-11-14 10:40 MorsLin 阅读(95) 评论(0) 推荐(0)
摘要: " 题目传送门 " 最近做了好多“奶牛题” 比较简单的状压DP 直接记录集合无法转移,还要再加上一维,表示末尾的牛的编号 阅读全文
posted @ 2019-11-14 10:40 MorsLin 阅读(73) 评论(0) 推荐(0)
摘要: " 题目传送门 " 目前(2019 6 12)Luogu上第一篇题解是错误的,但是能$A$ " link " $hack$数据来自 "洛谷讨论" 它的$DP$方式是设 表示涂了$k$次,当前涂到了$(i,j)$这个点,这个点有没有涂对$(0/1)$ 第一篇题解基本上是正确的(在我看来),但其中的一个 阅读全文
posted @ 2019-11-14 10:39 MorsLin 阅读(112) 评论(0) 推荐(0)
摘要: " 题目传送门 " 比较坑的区间$DP$ 定义 为将 这段区间全都合并为 一个数 的最大值 于是我很自然的就想到了这样转移: 但是 ,因为 和``f[k+1][j]``的最大值可能并不相邻,所以第一个转移是不对的,应该只有 这样就可以把这道题$A$掉了 但是 ,这样其实还是不对的,能$A$是因为数据 阅读全文
posted @ 2019-11-14 10:37 MorsLin 阅读(71) 评论(0) 推荐(0)
摘要: " 题目传送门 " 比较简单的单调队列优化DP 转移方程很容易想到是 $f_i = f_j + (a_i \geq a_j), j \geq i k$ 直接暴力是$O(n ^ 2)$的,考虑单调队列优化 如果$f_x a_y$,那么$x$一定不会比$y$差,我们只保留$x$就可以了 阅读全文
posted @ 2019-11-14 10:35 MorsLin 阅读(77) 评论(0) 推荐(0)
摘要: " 题目传送门 " 难得不卡$SPFA$ 因为可爱的贝茜会走三步停一步,所以可以将这三步并为一步来考虑,花费的时间为 需要注意的是,贝茜可以走一步再走回来,所以她周围的点也要考虑到,这样一共是16个点 另外,当贝茜到达终点时不一定正好走三步,所以要将和终点距离为$1,2$的点也连向终点 建图结束后, 阅读全文
posted @ 2019-11-14 10:34 MorsLin 阅读(115) 评论(0) 推荐(0)
摘要: " 题目传送门 " 感觉这题最大的难点是发现它的解法是二分图最大匹配 主人的路线是固定的,对于每一段的路线,我们可以枚举小狗想去的景点,如果时间够,我们就将这段路线的起点和小狗想去的点连起来 这样就形成了一个二分图,因为 dog每次与主人相遇之前最多只去一个景点 ,所以这道题就转化成了二分图最大匹配 阅读全文
posted @ 2019-11-14 10:33 MorsLin 阅读(107) 评论(0) 推荐(0)
摘要: " 题目传送门 " 嗯,这道题的标签是 STL ,因为这个 STL 用的确实太妙了 这道题目要求维护一堆区间,而一个重要的操作是要删除所有与新区间冲突的区间 虽然可以用$Splay$来操作,但用STL里的 set 也绝对不虚 其中最精妙的当属这个 重载运算符 它的意思是当两个区间相交时,这两个区间相 阅读全文
posted @ 2019-11-14 10:32 MorsLin 阅读(75) 评论(0) 推荐(0)
摘要: " 题目传送门 " 早已离我远去的六一儿童节…… 维护区间翻转,很容易可以想到用$Splay$来维护 唯一的难点就是如何维护操作$2$ 因为异或是对于每一个二进制位上的操作,而$d \leq 2 ^ {20}$,所以对于节点$x$,我们可以开一个数组 ,表示$x$和它的子树中第$i$个二进制位上的$ 阅读全文
posted @ 2019-11-14 10:32 MorsLin 阅读(106) 评论(0) 推荐(0)
摘要: " 题目传送门 " 额……因为没考虑好题目条件的关系,$WA$了好几次…… 把必须要做题的$K$天看作一个个端点 因为这$K$天是我们必须要做题的,而我们又要保证做题数量单调递增,所以我们可以在每两个端点之间筛选出大于左端点小于右端点的数,然后整体跑一遍最长上升子序列,这样就可以保证满足题目条件 无 阅读全文
posted @ 2019-11-14 10:31 MorsLin 阅读(117) 评论(0) 推荐(0)
摘要: " 题目传送门 " Luogu题面爆炸是什么鬼 只有当$\sum_{i=l}^r a_i k\times (r l+1+d) 0$才会无解 化简可得$\sum_{i=l}^r (a_i k) k\times d$时无解 所以此题转化为维护动态最大子段和,用线段树即可 阅读全文
posted @ 2019-11-14 10:30 MorsLin 阅读(83) 评论(0) 推荐(0)
摘要: " 题目传送门 " 好久没做网络流了…… 定义四个矩阵分别为 定义一个点为$x$,源点向$x$连容量为 边,$x$向汇点连容量为 的边 因为相邻的选择同一科目会有加成,所以对于 ,我们可以新建一个节点$y$,源点向$y$连容量为 的边,$y$向它周围的点连容量为$inf$的边。对于 也是同理,$y$ 阅读全文
posted @ 2019-11-14 10:29 MorsLin 阅读(75) 评论(0) 推荐(0)
摘要: " 题目传送门 " 不开 见祖宗系列 很自然的想法是求出所有区间的价值然后除区间个数 怎么求区间价值? 设数$x$的位置为$p$,则$x$为$[l,r]$中所有区间的价值做出了$(r−p+1) \times (p−l+1)$次贡献(乘法原理) 将这个式子拆开,就是$(r−l+1−r\times l) 阅读全文
posted @ 2019-11-14 10:28 MorsLin 阅读(75) 评论(0) 推荐(0)
摘要: " 题目传送门 " 好久没做网络流了…… 对棋盘进行黑白染色,黑色点连源点,白色点连汇点 因为相邻的点不能同时选,所以要在相邻的点间连容量为$inf$的边 然后用所有方格的价值和减去最小割即可 双倍经验: "Luogu P4474 王者之剑" 阅读全文
posted @ 2019-11-14 10:28 MorsLin 阅读(103) 评论(0) 推荐(0)
摘要: " 题目传送门 " 阅读理解题 真正题意 求区间众数的出现次数,输出时在前面加个负号 题解 莫队! 用 表示数 出现的次数 表示出现 次的数有多少个 加入一个数时, 删除一个数时,要注意如果 ,需要 阅读全文
posted @ 2019-11-14 10:27 MorsLin 阅读(84) 评论(0) 推荐(0)
摘要: " 题目传送门 " 新技巧! 了解了个新东西: 虚拟射线法 题目要求我们绕树林一圈,为了使我们的搜索能满足这个条件,可以任意找一棵树,在它的下方建一堵墙,将原图分为左右两半,搜索时不许过墙,最后把墙拆掉,将图的两部分合并就可以了 阅读全文
posted @ 2019-11-14 10:26 MorsLin 阅读(122) 评论(0) 推荐(0)
摘要: " 题目传送门 " 树形DP套路题 输入比较有趣 转移方程还是套路的使用类似于$01$背包的形式: 表示在$pos$这个节点上已经偷了$j$幅画,$to$表示要去的节点,$len$是在走廊上浪费的时间 彩蛋 十分类似的题目: "Luogu P3360 偷天换日" 阅读全文
posted @ 2019-11-14 10:25 MorsLin 阅读(99) 评论(0) 推荐(0)
摘要: " 题目传送门 " 最近题荒,不知道做什么题,就心血来潮挖了一个大坑 一堆猪玩《~~三~~猪国杀》,想想就$interesting$ 最终万分艰难的$A$掉了, 留贴纪念 坑点 这道题,嗯……,可以说,全是坑点…… 1. 如果牌堆没牌了,那么会一直摸最后一张牌 2. 距离的意思其实是:每只猪只能杀到 阅读全文
posted @ 2019-11-14 10:24 MorsLin 阅读(101) 评论(0) 推荐(0)
摘要: " 比赛传送门 " 这真的是小白月赛么…… 说好的“题目难度在$CF\; DIV2\;A$~$C$”呢? $D,E$两题为数学题,所以不想整(并没有歧视数学的意思) A.华华听月月唱歌 贪心区间覆盖裸题,但细节需要注意 阅读全文
posted @ 2019-11-14 10:22 MorsLin 阅读(157) 评论(0) 推荐(0)
摘要: " 题目传送门 " 非常考思维的题目 预先处理出 ,和 两个数组,分别表示以 为开头的递增子串长度和以 为结尾的递增子串长度 接下来要做的就是求出$\max (g_i + f_j), i g_i$,则$i$是没有价值的 为了便于查找,我们应只保留有价值的$i$ 具体维护请看代码 更详细的讲解请参考《 阅读全文
posted @ 2019-11-14 10:20 MorsLin 阅读(85) 评论(0) 推荐(0)
摘要: " 题目传送门 " OI生涯第一道计算几何题! 首先有一个结论,最优的隔板一定会经过两个点,否则可以使它经过两个点,而答案不会变差 暴力思路 两点确定一条直线,可以暴力枚举两个点,连线之后再统计。时间复杂度$O(n ^ 3)$ 正解 接下来考虑优化 我们其实可以枚举其中一个点,然后将隔板看作一条绕这 阅读全文
posted @ 2019-11-14 10:18 MorsLin 阅读(108) 评论(0) 推荐(0)
摘要: Day 1 上午——基础算法 枚举 例1 求长度为$n$的全排列 题解 : $next\_ permutation$ 可你真的知道它的内部实现吗? 实现: 对于当前的一个排列,从后向前找到第一个非增的元素,再从后向前找第一个比它大的元素,交换这两个数,再将后缀翻转。 例2 "HNOI2003 激光炸 阅读全文
posted @ 2019-11-14 10:17 MorsLin 阅读(221) 评论(0) 推荐(0)
摘要: " 题目传送门 " 从蓝书上看到此题,感觉挺有意思,就做了做。 首先将式子变形成$a+b=d c$ 接下就可以$O(n^2)$枚举$a+b$,并用$hash$记录下来,再$O(n^2)$枚举判断是否存在合法的$d,c$使得$d c=a+b$ 如果用$map$时间复杂度会有点爆炸 但强大的$STL$里 阅读全文
posted @ 2019-11-14 10:09 MorsLin 阅读(110) 评论(0) 推荐(0)
摘要: " 题目传送门 " $\tt{udebug}$真好用! 这道题用到了斜率优化的思想(然而汝佳说这是“数形结合”)。 如果有《算法竞赛入门经典》,那么你可以看一下$P243$,上面有较为详细的讲解。 大体思路是将一段区间$[i,j]$看成是坐标分别为$(i,sum_{1,i})$和$(j,sum{1, 阅读全文
posted @ 2019-11-14 10:09 MorsLin 阅读(148) 评论(0) 推荐(0)
摘要: " 题目传送门 " 贪心好题,原题应为 " LA3266 " 首先给国王和田忌的马从小到大排序 接下来是贪心策略: 1. 首先比最快的马,如果能赢就直接赢 2. 如果赢不了,就比国王和田忌最慢的马,能赢就赢 3. 如果最慢的马也赢不了,就用最慢的马去怼国王最快的马 为什么这么做是对的呢? 首先,如果 阅读全文
posted @ 2019-11-14 10:08 MorsLin 阅读(139) 评论(0) 推荐(0)
摘要: " 题目传送门 " 虽然最小割能过,但好像并不是官方解法 此题正解应是平面图转对偶图 所谓“对偶图”,其实就是将给定图的每块区域看成点,如果有一条边分隔开了两块区域,那么就在这两块区域之间连边。 对于这道题,我们连完边之后再跑一遍最短路就好了 另外要注意的是特判$n=1$或$m=1$的情况 阅读全文
posted @ 2019-11-14 10:01 MorsLin 阅读(120) 评论(0) 推荐(0)
摘要: " 题目传送门 " 这种$DP$能有蓝题?反正我是不信 状态 表示当前是第$i$局,已经变了$j$次手势,当前的手势是$k$,之后能赢多少场 转移 用一种类似后缀和的方式,记录下如果当前变为该手势,则之后能赢多少局(其实这步并不必要,但我觉得更好理解一些) 之后疯狂判断就好了 其中 为 当前手势之后 阅读全文
posted @ 2019-11-14 09:59 MorsLin 阅读(163) 评论(0) 推荐(0)
摘要: " 比赛传送门 " 终于摆脱$pupil$!成为$Specialist$ 元旦$RP++$ A.New Year and the Christmas Ornament 没什么好说的,送分题 阅读全文
posted @ 2019-11-14 09:58 MorsLin 阅读(119) 评论(0) 推荐(0)
摘要: " 题目传送门 " 嗯……我承认我看了题解,不过好歹有了点自己的思路,大约蒙出来了$30\%$(个人感觉)…… 学会$DP$,任重而道远啊! Step1.贪心排序 先将每个人按 吃饭的快慢 排序,然后再进行$DP$ 稍微证明一下这个贪心吧 证明 设两个人排队和吃饭的时间分别为$a_1,b_1$和$a 阅读全文
posted @ 2019-11-14 09:56 MorsLin 阅读(86) 评论(0) 推荐(0)
摘要: " 比赛传送门 " 感觉这次$CF$的$C$题好简单,做出$3$道题+全部$AC$,涨了29分,摆脱$pupil$,指日可待! A.Dice Rollings 这道题最大的难度在理解题意上,只要输出合法的方案即可,所以不要想得太复杂。 我们可以发现,除了$0,1$以外,任何自然数都可以用$2,3$的 阅读全文
posted @ 2019-11-14 09:54 MorsLin 阅读(130) 评论(0) 推荐(0)
摘要: " 题目传送门 " 据说NOIP前写题解会$\mathcal{RP}$++ 看数据范围,肯定不能写多重背包,会$T$飞~ 如果每种硬币没有个数限制,就可以用完全背包了。 正难则反,我们可以先用完全背包预处理,然后减去不合法的情况。不合法的情况就是一个$s (d+1) \times c$的背包 但如果 阅读全文
posted @ 2019-11-14 09:52 MorsLin 阅读(110) 评论(0) 推荐(0)
摘要: " 题目传送门 " 据说NOIP前写题解可以$\mathtt{RP}$++ 20pts 我会暴力! 40pts 我会二维树状数组(线段树)! AC $n,m,q include include include define ls p 1) define LL long long using name 阅读全文
posted @ 2019-11-14 09:50 MorsLin 阅读(107) 评论(0) 推荐(0)
摘要: " 题目传送门 " 据说NOIP前写题解可以$\mathfrak{RP}$++ 因为要尽可能满足更多奶牛,所以按照这种区间贪心题的套路,先按右端点排序,然后依次遍历,能坐车的就让它们坐车,这样一定是最优的。 在贪心的时候,我们要知道在车在当前的时间段中最少有多少空位,可以用线段树维护(也可以不用线段 阅读全文
posted @ 2019-11-14 09:49 MorsLin 阅读(90) 评论(0) 推荐(0)
摘要: " 题目传送门 " 感觉这个题被玩坏了…… 翻看了一下题解区,发现了$N$种神仙做法: 1. 随机化搜索(伪模拟退火) 2. 搜索+剪枝 3. 模拟退火 4. 不对但是能A的状压$DP$ 5. 正确的状压$DP$ 其中$DP$又分用$DFS$的$DP$,不用$DFS$的$DP$,而且各种$DP$的时 阅读全文
posted @ 2019-11-14 09:48 MorsLin 阅读(108) 评论(0) 推荐(0)
摘要: " 题目传送门 " 题目名字真是十分契合Luogu的性质啊 IG NB $3^n$的子集枚举不会……看了题解后只会正解 对于每个状态,其实对我们有用的只有这个状态中有多少个$1$,而$1$的位置我们并不关心,因为具有相同个数个$1$的状态,它们出现的次数一定是相同的。 所以我们考虑用 表示有$i$个 阅读全文
posted @ 2019-11-14 09:47 MorsLin 阅读(94) 评论(0) 推荐(0)
摘要: " 题目传送门 " 第一次用秦九韶公式,有点小激动~~(然而并不)~~ 可以很暴力的从$1$到$m$依次代数。因为用了秦九韶,计算一次是$O(n)$的,总复杂度$O(nm)$。 高精其实没什么必要,我们直接模一个大质数来判断就可以。当它们在模$p$意义下为$0$,就认为原式为$0$,因为懒,我只用了 阅读全文
posted @ 2019-11-14 09:45 MorsLin 阅读(122) 评论(0) 推荐(0)
摘要: " 题目传送门 " 小黄鸟表示题目很毒瘤 这个题能转换成背包也是很神了…… 状态 表示到坐标$(i,j)$的最少点击次数,若无法到达,则置为$inf$ 转移 以下代码片段可能比较迷乱…… 预处理 因为可以从第一列任何地方开始所以第一列都是$0$ 剩下要注意的就是输出了,其实也没什么要注意的,会了$D 阅读全文
posted @ 2019-11-14 09:44 MorsLin 阅读(83) 评论(0) 推荐(0)
摘要: " 题目传送门 " 我校神仙出的神仙题 $\%\%\%$ 30分 找出所有有入度的点,排序,选前$k$个点,好了,30分到手。 在文章的最后,放一下 "官方题解" ,233~~~ 阅读全文
posted @ 2019-11-14 09:42 MorsLin 阅读(96) 评论(0) 推荐(0)
摘要: " 题目传送门 " 开了 十倍空间 才过是什么鬼?该不会我线段树炸了吧…… 细思恐极 平均数都会求,维护区间和,到时候除一下就好了。 方差的求法如下 (用的Luogu的图片) 因为要维护一个平方,我们可以考虑使用~~van♂~~完全平方公式将它拆开,这样只用线段树维护区间和和区间平方和就可以了。 对 阅读全文
posted @ 2019-11-14 09:41 MorsLin 阅读(144) 评论(0) 推荐(0)
摘要: 题目传送门 线段树维护区间 线段树结构体 struct zzz{ int l,r,mi; //l为以左端点的为起点的最长子串 //r为以右端点为终点的最长子串 //mi是区间内部的最长子串 }tree[50010<<2]; 合并 合并的时候要考虑左右区间互拼的情况 inline void up(in 阅读全文
posted @ 2019-11-14 09:39 MorsLin 阅读(121) 评论(0) 推荐(0)
摘要: " 题目传送门 " 很不错的一道单调队列神题 可以发现,当我们向右移动右端点时,左端点也会向右移动或不动。所以我们可以从左向右移动右端点,以上一个区间的左端点作为这个区间的左端点,然后将左端点右移,直到这个区间为一个合法区间。 为了判断区间是否合法,我们可以维护每个元素的前缀和,从而得到每段长为$d 阅读全文
posted @ 2019-11-14 09:39 MorsLin 阅读(114) 评论(0) 推荐(0)
摘要: " 题目传送门 " 操作2和操作3 反着 写是什么鬼?反人类 权值线段树的模板题 然而AC后才发现,可以用$\tt{set}$水过…… 权值线段树类似于用线段树来实现平衡树的一些操作,代码实现还是比较方便的 阅读全文
posted @ 2019-11-14 09:38 MorsLin 阅读(98) 评论(0) 推荐(0)
摘要: " 题目传送门 " 校内资格赛题目,差点高一就要$\tt{AFO}$了 30分思路 对30%的数据,满足$1≤n≤10$ 所以我们可以子集枚举,实际得分40pts 阅读全文
posted @ 2019-11-14 09:37 MorsLin 阅读(100) 评论(0) 推荐(0)
摘要: " 题目传送门 " 此解法超级暴力。洛谷最优解倒数…… 因为为这道题只有$30$种颜色,所以我们可以用 30颗线段树 来分别维护每种颜色。 涂颜色就将对应颜色的线段树区间染色成$1$,其他的染成$0$。 统计颜色就把线段树都枚举一遍,统计在这个区间上有$1$的线段树数量 ~~然而正解是压位线段树~~ 阅读全文
posted @ 2019-11-14 09:34 MorsLin 阅读(128) 评论(0) 推荐(0)
摘要: " 比赛传送门 " 熬夜氪肝打$CF$,好不容易搞出来三道题,~~TMD~~又$FST$了 $\rm{QAQ}$,还是第二道题,死因:数组开小。我什么时候能认真一些啊…… 第三道题因为错了太多+做得完,和第二题一个分 不过我竟然涨了 4个rating (可能是我太菜了,已经不屑于扣我的$\tt{ra 阅读全文
posted @ 2019-11-14 09:32 MorsLin 阅读(125) 评论(0) 推荐(0)
摘要: " 题目传送门 " 北极为什么会有企鹅啊,而且北纬91°在哪啊? 关键在建图 因为任意两个城市间都可以互相到达,再加上还有“快捷通道”,光是建图就已经$\rm{T}$了…… 但这题给了一个提示:除去快捷通道,边权 只与 两个城市的 异或值 有关 根据这个性质,我们可以发现,直接建图时,有很多边是多余 阅读全文
posted @ 2019-11-14 09:30 MorsLin 阅读(117) 评论(0) 推荐(0)
摘要: 悬线法可以用来求一类带有障碍点的最大子矩阵问题,对于一个$N \times M$的矩阵,该算法时间复杂度$O(NM)$。 基本概念 有效竖线:除了两个端点外,不覆盖任何一个障碍点的竖直线段 悬线:上端覆盖了一个障碍点的或者到达整个矩形上边界的有效竖线 悬线对应矩形:如果把一个悬线向左右两个方向尽可能 阅读全文
posted @ 2019-11-14 09:27 MorsLin 阅读(249) 评论(0) 推荐(0)
摘要: " 题目传送门 " $\rm{kkksc03}$说是模板题,但像我这种蒟蒻觉得万分艰难 这道题目的核心在于求出所有的危险城市,我们可以一次性将所有的被占领的城市全部加入队列里,然后扩展危险城市 还有一点就是点权最短路,具体看代码吧 阅读全文
posted @ 2019-11-14 09:26 MorsLin 阅读(148) 评论(0) 推荐(0)
摘要: " 题目传送门 " 比较裸的差分约束…… 当$k=1$,在$a,b$之间连一条边权为$0$的双向边 当$k=2$,从$a$向$b$连一条边权为$1$的边 当$k=3$,从$b$向$a$连一条边权为$0$的边 当$k=4$,从$b$向$a$连一条边权为$1$的边 当$k=5$,从$a$向$b$连一条边 阅读全文
posted @ 2019-11-14 09:25 MorsLin 阅读(99) 评论(0) 推荐(0)
摘要: " 题目传送门 " 据说是一道树形DP,这么高级的么…… 然而贪心就可以 因为消防局可以扑灭与它距离 不超过2 的基地的火灾,所以我们可以每次找出深度最大的点(用堆维护),然后在他的爷爷节点(没有爷爷就在父亲节点)建一个消防局 阅读全文
posted @ 2019-11-14 09:24 MorsLin 阅读(96) 评论(0) 推荐(0)
摘要: " 题目传送门 " 思路蛮巧妙的,像我这种蒟蒻根本想不到是背包…… 状态 用 表示在$A$机器上用了时间$i$时,$B$机器所用的时间 转移 $code$ 阅读全文
posted @ 2019-11-14 09:24 MorsLin 阅读(100) 评论(0) 推荐(0)
摘要: " 题目传送门 " 我$DP$太菜了……只会抄题解…… 抄了题解的我再来向你们瞎$\tt{bibi},$ 233~ 状态 一道区间$DP$,我们用 表示将第$i$盏路灯到第$j$路灯之间的路灯全部关上的最小能耗,但这样我们很难转移,根本无从下手——不知道老张的位置。 既然我们缺少位置信息,那再加上一 阅读全文
posted @ 2019-11-14 09:23 MorsLin 阅读(89) 评论(0) 推荐(0)
摘要: " 题目传送门 " 暴搜都打不对 QAQ 调了好久 40pts 显而易见,我们可以通过枚举全排列来找到一种合法的答案 阅读全文
posted @ 2019-11-14 09:22 MorsLin 阅读(141) 评论(0) 推荐(0)
摘要: " 题目传送门 " $ZHX\; TQL$ Orz 这道题目我们可以用线段树维护…… 可能有$dalao$会问:“线段树怎么维护区间开平方?” 而这道题的精髓就在于,它要我们维护的操作是 开平方+下取整 。也就是说经过一定的次数,要开平方的数会慢慢缩小为"$1$",这个次数是很小的,而$\sqrt 阅读全文
posted @ 2019-11-14 09:21 MorsLin 阅读(161) 评论(0) 推荐(0)
摘要: " 题目传送门 " %%%$\sf{ZYD\;\;TQL}$ 感觉这个题的题意有点难懂,简单概括一下就是: 有$n$个村庄,$m$条道路,道路分为水泥路和鹅卵石路,选择其中$n 1$条路使得所有村庄联通,并且选择的路中恰好有$k$条鹅卵石路。 我们可以先对所有的水泥路跑一遍$Kruskal$,把它们 阅读全文
posted @ 2019-11-14 09:20 MorsLin 阅读(102) 评论(0) 推荐(0)
摘要: " 题目传送门 " 自从“HH的项链”被树状数组干爆了之后,莫队终于扬眉吐气了一把。 很经典的莫队模板题,好像没什么好说的…… 代码有(十)些(分)冗长,将就着看吧…… 阅读全文
posted @ 2019-11-14 09:18 MorsLin 阅读(109) 评论(0) 推荐(0)
摘要: " 题目传送门 " $ZHX\; TQL$ Orz 我们先考虑边权都是$1$的情况,此时只需要一个很简单的DP就可求出答案。 $dp[i][j]$表示从i到j的方案总数,则$dp[i][j]=\sum_{k=1}^n dp[i][k]\cdot dp[k][j]$,虽然我们的方程是正确的,但它会$\ 阅读全文
posted @ 2019-11-14 09:17 MorsLin 阅读(110) 评论(0) 推荐(0)
摘要: 线段树:我还是很强的 简略讲解 要用线段树维护区间,我们要明确: 线段树存什么东西 怎么合并 如果有区间修改,怎么打标记 对于区间最大子段和,我们可以记录四个值:以维护的区间左端点为起点的最大子段和,以维护的区间右端点为终点的最大子段和,在维护区间内的最大子段和 和维护区间所有元素的和 合并的话稍微 阅读全文
posted @ 2019-11-14 09:17 MorsLin 阅读(1130) 评论(1) 推荐(1)
摘要: " 比赛传送门 " 宾馆的$\rm{wifi}$也太不好了,蹭的$ZZC$的热点才打的比赛(感谢$ZZC$) 日常掉rating…… 我现在是个$\color{green}{pupil}$…… 因为我菜,所以还是只写了前三道题 题解 A.Single Wildcard Pattern Matchin 阅读全文
posted @ 2019-11-14 09:15 MorsLin 阅读(154) 评论(0) 推荐(0)
摘要: " 题目传送门 " 虽然这题是“网络流24题”,但我匈牙利~~Van♂~~完全不虚,还比$dinic$好写不少(不过就是慢一些) 阅读全文
posted @ 2019-11-14 09:14 MorsLin 阅读(88) 评论(0) 推荐(0)
摘要: " 题目传送门 " 又是一个神奇的建图题,建图$Van$♂全不会啊 大体就是我们一个一个的把球放进来,每放进来一个,我们就求出当前的最小路径覆盖数(当前顶点数 最大流),直到最小路径覆盖数${ }$柱子数。此时的球的编号$ 1$就是第一问的答案。第二问就是求每一条路径,顺着推下来就好了 阅读全文
posted @ 2019-11-14 09:13 MorsLin 阅读(129) 评论(0) 推荐(0)
摘要: " 题目传送门 " 这个建图啊,十分巧妙,我是真没看出来(我太蒟了) 首先要先跑一遍最长不下降子序列的$O(n^2)$解法,预处理出以$i$结尾的最长不下降子序列的长度$dp[i]$,然后找出最大的$dp[i]$,记为$cnt$,输出$cnt$,第一问就结束了。 从源点向长度为$1$的点连一条容量为 阅读全文
posted @ 2019-11-14 09:12 MorsLin 阅读(130) 评论(0) 推荐(0)
摘要: " 题目传送门 " 这题是一道很好的~~莫队~~树状数组题目。 首先,我们需要离线操作,把询问全存下来,然后按询问的右端点排序 排好序后,我们可以更改树状数组维护的区间,同时记录每一个元素最后出现的位置,因为我们是从左向右来回答每个询问,所以在右面的元素肯定比在左面的相同元素作用更大一些,所以我们在 阅读全文
posted @ 2019-11-14 09:11 MorsLin 阅读(77) 评论(0) 推荐(0)
摘要: " 题目传送门 " 在这先膜一波$\mathcal{rqy}$,$rqy\; tql$! 首先应该能想到正解是$DP$。我们可以枚举每个时间点来列出转移方程。 用$f[i][x][y]$表示在$i$这个时间点走到$(x,y)$这个位置的最长路径,我们以向下走为例,则: $dp[i][x][y]=\m 阅读全文
posted @ 2019-11-14 09:09 MorsLin 阅读(100) 评论(0) 推荐(0)
摘要: 前置技能:线段树、DFS 当我第一次听到 “树链剖分” 这个算法的时候,感觉它一定很高大上。现在看来,它确实很高大上,不过也十分的 暴力 (个人认为,不喜勿喷) 基本概念 树链剖分,计算机术语,指一种对树进行划分的算法,它先通过轻重边剖分将树分为多条链,保证每个点属于且只属于一条链,然后再通过数据结 阅读全文
posted @ 2019-11-14 09:02 MorsLin 阅读(231) 评论(0) 推荐(0)