10 2018 档案

摘要:爆搜+剪枝 or 类似于区间dp的dp 先把题目中的条件转化成我们容易解决的。 首先当然是化环成链。做法就是开两倍的空间,然后枚举每一个点开始的情况。 (或者你用高深的膜法也可以啊) 这里提供两种方法,小菜鸡只会第一种。 法一:爆搜+剪枝 大体思路就是枚举现在已经切成了多少段,当切到$m$段了就停止 阅读全文
posted @ 2018-10-31 22:06 Garen-Wang 阅读(332) 评论(0) 推荐(0)
摘要:dp套spfa是最骚的qwq 首先要说明一点:这道题数据比较小,允许你用你觉得似乎过不了的复杂度过! 总体思路是这样的: 我们定义一个 数组表示第$i$天到第$j$天(闭区间)内的最短路,再定义 为前$i$天的最小代价。 那么就可以列出这么个柿子: $$dp[i]=max_{j=1}^{i 1}dp 阅读全文
posted @ 2018-10-31 21:49 Garen-Wang 阅读(103) 评论(0) 推荐(0)
摘要:带权有向图上点不重复的最长路径 状压dp 来自仓鼠老师的话: 这题实际上就是带权有向图上点不重复的最长路径。从理论上来说,应该是个NP问题。 就是把每一句话设为一个点,然后可以$O(n^2)$的连边,怎么连边就不说了吧。。 设 为当前走到$i$点,已走的状态为$j$。然后就可以愉快地进行状压dp。 阅读全文
posted @ 2018-10-31 14:49 Garen-Wang 阅读(208) 评论(0) 推荐(0)
摘要:看题解看得快晕了 总体的思想是一种配对的思想,具体是这样的: 在初始魔板中选择一列来与终止状态的魔板的第一列配对,记录哪些行是没有互相对齐的。 因为对行我们是可以执行翻转的操作的,所以只需要依次判断后面的配对是否遵循前面的配对原则,如果违反了的话这种情况就无解。 直接写代码吧:(代码抄题解的) 一个 阅读全文
posted @ 2018-10-31 14:45 Garen-Wang 阅读(172) 评论(0) 推荐(0)
摘要:上一篇博客题目的普遍情况 这里跟前面那道题有点不同的地方是它的半径变得任意可变,并且给了一个初始的节点已经覆盖,并且最终的目的是让所有的叶子都覆盖。 做法跟上道题是类似的。 无根树还是变成有根树好,既然直接给了我们一个特殊点,那就直接拿它做根。 首先先dfs一下,判断哪些点是叶子,顺便统计出dep数 阅读全文
posted @ 2018-10-31 14:20 Garen-Wang 阅读(119) 评论(0) 推荐(0)
摘要:贪心:蓝书一道例题的特殊情况 这道题的初始化条件是一个消防站都没有,让你用最小的点去覆盖所有的点。每个点能覆盖的范围是2。 首先,无根树肯定转化为有根树,直接取1为根就好了。 这里有一个贪心的思想:每次我取出那个深度最大的没被覆盖的节点,要去覆盖它,我应该取那个节点? 取它自己会浪费一个半径,只取它 阅读全文
posted @ 2018-10-31 14:12 Garen-Wang 阅读(149) 评论(0) 推荐(0)
摘要:递推 or 数论+高精都可以解决的毒瘤题 这里就把两种方法都介绍下吧。 递推做法 设 为当前是$i$位数,最高位为$j$的方案数。 这里的思想是从左到右的填出来,只要$i 1$位的最高位比当前的最高位还高,那么就可以转移。 写成数学式就是$dp[i][j] = \sum_{k=j+1}^{limit 阅读全文
posted @ 2018-10-31 14:07 Garen-Wang 阅读(117) 评论(0) 推荐(0)
摘要:古老的dp好题 50分的做法是肯定能想出来的。设 表示当前走到$i$行$j$列,两人瓶子的容量分别为$k$和$l$,现在这一步是由谁走的。 但是显然数组开不下。转移也挺麻烦的。 满分做法: 直接把两人瓶子的容量合成一维就可以了。合并为两人容量的差值。 转移有一个问题:他们的差值可能是负的啊! 直接像 阅读全文
posted @ 2018-10-31 13:45 Garen-Wang 阅读(101) 评论(0) 推荐(0)
摘要:区间dp 或 树形dp的小题目 这道题我刚学OI的时候就看过,结果以为要暴力建出所有形态的树,其实还是太naive了啊! 因为给你的是中序遍历,而且还是有序的$1~n$,所以你可以随便枚举一个点做当前子树的根,那么左边的中序就是左子树了,右边同理。 这样写可以很方便地写一个记忆化搜索(不会递推),随 阅读全文
posted @ 2018-10-31 13:39 Garen-Wang 阅读(100) 评论(0) 推荐(0)
摘要:约数个数和 这里还是用到辣个公式: $$\sum_{i=1}^nd_1(i)=\sum_{i=1}^n\lfloor \frac{n}{i} \rfloor$$ 注意:这个公式对总体成立,对个体不成立! 所以你就有两种思路: 1. 转化为“余数求和”那种思路,使用除法分块来解决这打道题。 2. 直接 阅读全文
posted @ 2018-10-31 13:33 Garen-Wang 阅读(176) 评论(0) 推荐(0)
摘要:二分答案+取log+差分约束+判正环 题目中A能$k$倍杀B的条件是:$s[A] \geq k \times s[B]$ 第一个flag导致没人女装需要满足:$s[A] \geq k \times s[B]$。意思是A成功地$k$倍杀了B导致A不用女装。 第二个flag导致没人女装需要满足:$s[B 阅读全文
posted @ 2018-10-31 12:35 Garen-Wang 阅读(290) 评论(0) 推荐(2)
摘要:一个类似于LIS的dp 既然时间都按顺序给你了,那么就可以很轻松地想出一个乱搞的dp。 设 为前$i$只鼹鼠出现的时间段内,最多打死的鼹鼠。 那么有显然的转换过程,也就是判断他规定时间内走不走得过来,如果走得过来就直接转移即可。 最后的答案是$max(dp[i])$,不知道为什么哩! 总结: 千万要 阅读全文
posted @ 2018-10-31 12:08 Garen-Wang 阅读(155) 评论(0) 推荐(0)
摘要:dlT1让人心态爆炸qwq 30pts做法:暴力or你的dp写挂(我就dp写挂了) 50pts做法:在dp里面注意一点,$2^{cnt}$可能会爆long long!那些求出来的答案明显爆long long的直接用整个序列的和$10^{10}$取min。 满分做法: $\lceil log_2{10 阅读全文
posted @ 2018-10-29 22:06 Garen-Wang 阅读(138) 评论(0) 推荐(0)
摘要:不同于模拟退火的一种优化算法 我本来一看到这道题就打了个模拟退火,但是死活模拟不对,样例死活过完就是重心。 翻题解发现可以用向四周的步长移动来求出最优解。不知道这叫什么名字但肯定不是模拟退火。 算法的思想是这样的: 给出4个方向上下左右,然后初始化步长,如果当前新答案比老答案好就更新这个答案,否则步 阅读全文
posted @ 2018-10-29 21:58 Garen-Wang 阅读(255) 评论(1) 推荐(0)
摘要:99年的NOIP那么毒瘤的吗? 我一眼看上来就是爆搜,赤裸裸地爆搜! 结果交上去只对了两个点。 然后就跟着题解的另一个爆搜跟着打,但是隐隐约约感觉那个也不对,但是多对了一个测试点。 最后一个测试点~~打表过的。。。~~ 确实不明白为什么爆搜过不了这道题。。。 代码: cpp include incl 阅读全文
posted @ 2018-10-29 21:52 Garen-Wang 阅读(193) 评论(0) 推荐(0)
摘要:dirworth定理+双关键字最大上升子序列 显然可以看出是求最小的双关键字不上升子序列的覆盖数。 根据dirworth定理就可以换去求最长的上升子序列。 双关键字的最长上升子序列求法: 先将一个关键字上升地排序,另一个关键字下降,按照原来的那样n^2的做即可。 ~~其实蒟蒻不明白其中的原理,如果有 阅读全文
posted @ 2018-10-29 21:50 Garen-Wang 阅读(244) 评论(0) 推荐(0)
摘要:这道题加强了我对dp和等差数列的认识。。。 暴力做法是我第一个想出来的,但是可能实现起来还比满分做法复杂。。。 暴力能拿30pts。 暴力太难做的就要想想dp!也许用dp,问题就变得很容易求的了。 这里有两种思路。 法一 用 表示等差数列最后第二项的值为$h[i]$,最后一项$h[j]$的方案数。 阅读全文
posted @ 2018-10-28 22:11 Garen-Wang 阅读(208) 评论(0) 推荐(0)
摘要:暴力出奇迹! 讲道理,刚看到什么数组乘以下标,我就已经吓傻了。 ~~woc,区间加还不能用差分,这怎么可能做得了啊~~ 其实 暴力 就完事了。 先看看数据范围:$n \leq 80000, opt \leq 1000000, Q \leq 1000, Final \leq 10000000$ 这能够 阅读全文
posted @ 2018-10-28 22:04 Garen-Wang 阅读(214) 评论(0) 推荐(0)
摘要:状压dp水题 俗话说:能打暴力的都是简单题,因为你可以用暴力来对拍啊!那么只要你足够强,你就能写出一个正解而不出现WA。 暴力做法就是直接枚举全排列,一个一个算即可。 正解是定义 为最后一个元素为$i$,选中的状态为$j$的方案数。转移很显然,太显然了。不说了。 所以最后把$\sum{dp[i][S 阅读全文
posted @ 2018-10-28 21:57 Garen-Wang 阅读(96) 评论(0) 推荐(0)
摘要:two pointers problem There is a similar problem called "guanghuazhan". You can find it in my blog. Obviously we can use two pointers. But the index is 阅读全文
posted @ 2018-10-28 10:05 Garen-Wang 阅读(152) 评论(0) 推荐(0)
摘要:heavy light decomposition & segment tree problem which need lots of detail Last night I reinstalled my manjaro linux and it hasn't installed any app w 阅读全文
posted @ 2018-10-28 10:00 Garen-Wang 阅读(209) 评论(0) 推荐(0)
摘要:二分图最大独立集 先给出二分图最大独立集的概念:选择最多的点,使任何边的两边不被同时选中。 并且有结论:最大独立集=节点总数 最大匹配。 这道题为什么是二分图? 我们可以通过$(x,y)$中的$x+y$的奇偶性来构造二分图,显然它们肯定不会互相攻击。 当一个点$x+y$为奇时,向它能攻击到的点都连一 阅读全文
posted @ 2018-10-27 07:58 Garen-Wang 阅读(154) 评论(0) 推荐(0)
摘要:luogu模拟赛T1,爆零的我实在是太菜了! 这道题很容易想到bfs的思路,但是如何优雅地扩展状态? 我原本的做法是记录每一位,然后慢慢去扩展状态,结果爆零了。不知道为什么。 std的做法是直接通过运算来得到新的数字。通过许多比较不显然的除法和取膜就可以完成节点的扩展。 哎,我还是太菜了! 代码: 阅读全文
posted @ 2018-10-26 21:54 Garen-Wang 阅读(130) 评论(0) 推荐(0)
摘要:暴力数据结构牛逼!!! 这道题给你好多的01串,还有好多的区间统一赋值。 没错,你想到了什么? 珂朵莉树! 所以你就可以用珂朵莉树很轻松地水过这道题了! 唯一要注意的是split的顺序。必须先split右边的,再split左边的。 原因是先split左边的时候,可能会因为split右边而导致原迭代器 阅读全文
posted @ 2018-10-26 21:49 Garen-Wang 阅读(156) 评论(0) 推荐(0)
摘要:珂朵莉树,真香! 这道题虽然区间特别大,但是对于珂朵莉树来说是小case。因为只要考虑连续的数字就可以了。 初始化就直接建$[1,n]$的$1$,然后改区间推成0的就退成0,推成1的就推成1就可以了。 但是有一个小问题:你暴力地对整颗珂朵莉树区算那个sum,你会T掉。 解决方法很简单:在每一次ass 阅读全文
posted @ 2018-10-25 22:10 Garen-Wang 阅读(168) 评论(0) 推荐(0)
摘要:复习一下欧拉函数。。。 讲道理,这些什么$(kx, ky)$,当$k=1$时就是一个互质的东西。这是最根本的。 所以对$(1,1)$特判,因为它能处理出所有$(x,x)$的对。 然后对$(x,y)$的大小讨论,发现一对互质的数倒过来算两次。 所以只考虑$x y$的情况,算上这些情况再乘以2就可以算出 阅读全文
posted @ 2018-10-25 22:07 Garen-Wang 阅读(120) 评论(0) 推荐(0)
摘要:meet in the middle模板题。。。 复杂度太大了,我们就要想想能不能折半,折半后的复杂度如果刚好能过的话就是折半了。。。 这道题要做的就是预处理出所有的$a_i+b_j$,然后用一个表来存下来。 然后就可以再枚举所有的$c_i+d_j$,看看是否有等于$ (a_i+b_j)$的,如果有 阅读全文
posted @ 2018-10-25 22:00 Garen-Wang 阅读(88) 评论(0) 推荐(0)
摘要:您的好友:汉诺塔已上线! 汉诺塔相信每一个合格的OIer都听说过并且实现过。这是一个递归的程序。 汉诺塔本来就有两个规则: 1. 一次只能移动最上面的一个盘子。 2. 编号大的盘子不能压在编号小的盘子上面。 汉诺塔问题给我们的结论就是下面这几句话: 把$n$个盘子的汉诺塔 整体 地从一根柱子移动到另 阅读全文
posted @ 2018-10-25 21:54 Garen-Wang 阅读(173) 评论(0) 推荐(0)
摘要:菜鸡刷红题系列 抽象出题意:数轴的$[0,L]$本来都是1,选定一些区域要变成0,求最后这片区域还有多少1。 讲道理这就是区间推平操作啊! 说到区间推平你想到了什么? Chotholly! 所以我们可以用珂朵莉树非常优雅地做过去。 ~~跑得还挺快的~~ 代码: 阅读全文
posted @ 2018-10-24 22:05 Garen-Wang 阅读(193) 评论(0) 推荐(0)
摘要:话说,研究珂学的最好方式是…… 其实珂朵莉树很久之前就看过UESTC的那个介绍了,但是由于太菜,听都听不懂。 现在过来学一学,才发现太暴力太优美了!我爱珂朵莉。。。 这道题要你弄的4个操作是区间加、区间推平、区间排序后的第$k$大值和区间任意幂次和。 比较有难度的就是区间任意幂次和。暴力显然行不通的 阅读全文
posted @ 2018-10-24 22:03 Garen-Wang 阅读(619) 评论(0) 推荐(0)
摘要:偷偷地切莫队模板题。。。 讲道理这道题也是很普通的莫队模板题。 让你求了个概率,其实就是问你$\sum{\frac{cnt[i] \times (cnt[i] 1)}{2}}$。分母是人都能求吧。求出两个东西之后约分即可。 分子这个东西,其实就是一道同样的莫队题“小B的询问”中的维护方法。 每多一个 阅读全文
posted @ 2018-10-24 21:52 Garen-Wang 阅读(143) 评论(0) 推荐(0)
摘要:细节爆搜是真的牛逼。。。 题目意思非常的简单:给你4个数,可以任意添加运算符和括号,判断运算结果可不可能出现24?若可能输出方案的任意一种。(spj真好) 如果考虑上那些括号的话会很麻烦,于是我就~~翻题解~~发现可以使用后缀表达式来解决。 我的做法是构造一个字符串来表示一个后缀表达式,填运算符的话 阅读全文
posted @ 2018-10-23 14:06 Garen-Wang 阅读(491) 评论(0) 推荐(0)
摘要:复习prim算法系列 虽然prim跟dij是差不多的,但是两者还是有一点点差别。 就像我这种菜鸡,只会dij,结果写出来的prim奇怪得很。 这道题我还特意写了个堆优化,但是也没快到那儿去。。。 首先如何看出这是最小生成树的裸题? 1. 在每一轮中,每个城市选择一个与它最近的城市,申请修建通往该城市 阅读全文
posted @ 2018-10-22 22:09 Garen-Wang 阅读(216) 评论(0) 推荐(0)
摘要:数论永远不会系列。。。 这道题显然可以打暴力的50pts,算一下时间范围内能枚举的最大x即可。 满分做法建立在优化暴力。。。 题目中给了我们两个东西: $x$和$a_0$的最大公约数是$a_1$ $x$和$b_0$的最小公倍数是$b_1$ 可以化为两个式子: $$gcd(x, a_0)=a_1和x 阅读全文
posted @ 2018-10-22 22:01 Garen-Wang 阅读(138) 评论(0) 推荐(0)
摘要:vjudge真好用。。。 一句话的题意:给你一个数组,求无重复元素的最长区间长度。 可以发现:区间越长,重复元素会越多。反之亦然。 直接使用two pointers就可以求解。 具体实现思路是:先移动右端点直至出现重复元素,然后再移动左端点直至没有重复元素。 复杂度依然十分优美。 PS:这道题没跟数 阅读全文
posted @ 2018-10-22 21:53 Garen-Wang 阅读(151) 评论(0) 推荐(0)
摘要:pjT3翻车了,怕是连pj组都不如 这道题一看上去就是用bfs的啊,用dfs还怕爆栈。 然后就手动地打了个非常暴力的bfs,只拿到了25pts。 翻了题解才知道这个东西居然还能用spfa! 总结性话语: 搜索题不会做的,试着转换成图论题,用图论题的思路解决暴力模拟也许会更方便 。 所以我们可以类似于 阅读全文
posted @ 2018-10-22 21:48 Garen-Wang 阅读(227) 评论(0) 推荐(0)
摘要:扫描线+线段树求矩形并的面积和周长算法 扫描线其实十几天前就听说过了。但是不知道具体的实现方法。 这次专门刷了扫描线+线段树的模板题,好好地体会了一下。 一般会给你一些矩形的两个对角点的坐标,而这些坐标正常情况就会很大或者有负数,需要我们的离散化。 离散化这么一个操作就不多说了,排序去重,找个数组存 阅读全文
posted @ 2018-10-21 22:08 Garen-Wang 阅读(147) 评论(0) 推荐(0)
摘要:随机算法。真香! 这道题一看上去好像很可怕的样子,根本想不出什么算法。 全部情况都枚举一遍显然不可能,铁铁的T掉。 没办法全都枚举,那就随机乱搞! 我们可以使用 这个函数,每次打乱a数组,然后每一次添加数据的时候贪心地往当前组内和最小的加就是了。 一次极小概率碰到正解,但这种随机算法你能跑20000 阅读全文
posted @ 2018-10-21 11:09 Garen-Wang 阅读(135) 评论(0) 推荐(0)
摘要:回首去年的5月份,提前被本地可以说是最好的高中提前录取,还记得那个时候我听完之后还在继续写作业呢。 6月份,首次接触OI,才发现我这么多年来玩的电脑甚至可以成为竞赛的优势! 从7月份的那个暑假,我就从零开始,摸黑地入手C++。此前我还是业余的学java的初中生。 很幸运,出生在这个弱市,初赛考得差不 阅读全文
posted @ 2018-10-19 13:51 Garen-Wang 阅读(217) 评论(0) 推荐(0)
摘要:毒瘤月赛题,暴力没有分系列。。。 这道题不知道为什么,我打暴力应该是没问题的,用一个类似于莫队的思想来处理询问。然后就爆零了。。。 这道题的正解是这样的: 你模拟一下题意,就会发现一个神奇的系数问题。 这就是个yh三角咯。所以你可以$O(2000^2)$地打出整个杨辉三角,然后就可以很便捷地处理所有 阅读全文
posted @ 2018-10-19 13:14 Garen-Wang 阅读(271) 评论(0) 推荐(0)
摘要:第一道扫描线+线段树题。 这道题还耗了我很久的时间,因为不懂得扫描线到底要怎么做而一直翻了很多dalao的题解。 这道题求的是一个指定大小的矩形可以框住多少颗星星,他们的亮度总和最大。 直接移动矩形不可行,我们将每颗星星转换为每颗星星能被矩形框住的响应区域,不难发现也是矩形。 为了不重复计算,我们只 阅读全文
posted @ 2018-10-19 13:09 Garen-Wang 阅读(149) 评论(0) 推荐(0)
摘要:数据结构优化dp是最骚的。。。 看到区间和,常用的技巧就是前缀和了。所以我们弄出一个前缀和数组b。 那么这个答案就能转化为$max(a_i a_j)$。 我们每一次就只枚举i,那么这个max可以把$a_i$拿出来,也就是$a_i min(a_j)$。 所以转换为区间最小值。直接转化为RMQ问题,使用 阅读全文
posted @ 2018-10-19 12:53 Garen-Wang 阅读(153) 评论(0) 推荐(0)
摘要:菜鸡面对大数据范围瑟瑟发抖。。。 我本来看到这道题有多个数据点,然后预处理一个函数就差不多快超时了,还以为不可做呢。。。 看来其实是我太菜了。。。 有个很重要的东西: 这道题中$0 \leq a \leq 100$! 说明当这个函数是二次的时候一定是开口向上的! 大概可以发现:我们要求的这个$F(x 阅读全文
posted @ 2018-10-18 22:04 Garen-Wang 阅读(178) 评论(0) 推荐(0)
摘要:ddd出的noip+模拟赛的T1 好难啊! 我的思路是用过河卒那样的加法原理算出1000 1000之内的两个点之间的距离,然后一个一个豆子来吃,吃到终点,方案数就乘法原理一个一个乘。 但是很不幸,评测的时候五颜六色,只有45pts。 正解是这样的: 你把人的坐标设为$(x,y)$,因为人只能往右或者 阅读全文
posted @ 2018-10-18 21:57 Garen-Wang 阅读(132) 评论(0) 推荐(0)
摘要:暴力出奇迹!!! 昨晚很积极地拿手机看这道题的题面,还挺易懂的。 然后写了第二发程序,用优先队列再弄个delta轻轻松松85pts。。。 要是过几天考试能像这样该多好啊。。。 显然那个人挑出所有蚯蚓的最长的,就是堆的基本操作了。 然后想到没有挑出来的蚯蚓是会长长的,但是他们已经在堆里面,用优先队列不 阅读全文
posted @ 2018-10-18 21:49 Garen-Wang 阅读(149) 评论(0) 推荐(0)
摘要:dfs+小剪枝+背包方案数的一道题 这道题有一个前置技能:你要会求那$n m$个砝码能表示多少的重量。 因为在这道题里面每个砝码只能取一次,所以相当于一个少了一个属性的01背包方案数。套上相应内容即可求解。 这应该也能有所帮助:https://www.cnblogs.com/Garen Wang/p 阅读全文
posted @ 2018-10-18 21:35 Garen-Wang 阅读(135) 评论(0) 推荐(0)
摘要:暴力不会写,直接抄题解系列。。。 这道题人云亦云说是贪心。但是重点是如何证明贪心是对的。 需要给定一定的排列来使拿到最多钱的大臣拿的最少,其实就是个排序。 我们讨论两个前后关系的大臣,如何才能使答案最小。 设两位大臣一位叫$a$,一位叫$b$,把他们前面的人(包括国王)的左手的乘积统称为$tot$。 阅读全文
posted @ 2018-10-18 21:27 Garen-Wang 阅读(173) 评论(0) 推荐(0)
摘要:背包方案数模板题练习 第一道题是另一道也叫做“砝码称重”的前置技能,第二道题是我搜背包方案数的时候出来的。 两道题有一点区别,就是多重(01)背包和完全背包。 第一道题因为数据水,所以多重背包也能过。但是也要学会如何写多重背包!!! 第二道题是完全背包,每一种货币可以拿无穷多次。 这种背包可以理解为 阅读全文
posted @ 2018-10-16 21:56 Garen-Wang 阅读(147) 评论(0) 推荐(0)
摘要:bitset优化传递闭包模板题 这种关系直接用图论来建模就是了,其实就是一个传递闭包。 传递闭包有一个朴素的做法就是floyd。 而这道题的范围是$n \leq 1000$,$n^3$的暴力显然会T。 而使用bitset,听说可以优化到原做法的$\frac{1}{32}$甚至更好! 直接给代码~~其 阅读全文
posted @ 2018-10-15 21:52 Garen-Wang 阅读(179) 评论(0) 推荐(0)
摘要:图论日常不会系列。。。 题意:给定有向边和无向边,然后给每一条无向边定向,使得到的图无环。 我本来想缩一下点的,但是越想越晕。 然后就翻了题解,恍然大悟。。。 其实只需要给只有有向边的图跑一次toposort。然后把无向边的定向看做是在添加有向边。 显然不要违反拓扑序来添加有向边,这个图就不可能有环 阅读全文
posted @ 2018-10-15 21:47 Garen-Wang 阅读(166) 评论(0) 推荐(0)
摘要:毒瘤数据卡普通莫队!! 这道题跟普通的莫队题目差不多,但是多了一个修改操作。 所以带修莫队就横空出世了。 普通莫队记录左端点和右端点,那么这里就再记录一个时间轴,表示当时已经执行过几次修改。 之后莫队模板就有六个while,前四个是一样的。 最后两个判断当前修改次数和目标修改次数的关系。这个就是灵魂 阅读全文
posted @ 2018-10-15 21:40 Garen-Wang 阅读(157) 评论(0) 推荐(0)
摘要:Flappy Bird真好玩(逃 这道题我一看上去好像是搜索啊,但是发现起点和终点都有点多了吧。。。 然后我就懵圈了。 其实这道题是一个套着皮的背包dp。 其实用dp想,很多问题就简单了。比如多个起点,我初值都设为0就行了;多个终点,我都找一遍就行了。 我自己试着不看题解自己用传统dp的思路(不夹杂 阅读全文
posted @ 2018-10-12 22:09 Garen-Wang 阅读(175) 评论(0) 推荐(0)
摘要:two pointers练习题。 这道题求的是一个最短的区间长度,满足其中所有的数字都出现。 暴力的做法是两次枚举,复杂度$O(n^2)$。 更优美的是尺取法,英文名叫two pointers。(两个指针。。。) 算法大概的过程是这样的: 其实真的是很优美的,代码也很短。 希望我能真的学会吧。。。 阅读全文
posted @ 2018-10-12 22:01 Garen-Wang 阅读(244) 评论(0) 推荐(0)
摘要:刷普及 打基础系列。。。 我的第一思路是把这个数组排序并去重,顺便算出去重后的每个数字在原数字中出现多少次。 发现我不会做。。。 然后其实可以有另一种做法: 把这些值扔进一个map里面,统计每个值出现的次数。 然后还是排序去重,在数组中挑出唯一的一个$B$,在map中找出$A$和$B$出现的次数。所 阅读全文
posted @ 2018-10-12 21:57 Garen-Wang 阅读(149) 评论(0) 推荐(0)
摘要:两种解法都解决了。。。 这道题有两种解法。 第一种是并查集补集,就是开两倍并查集空间,要隔离,就把一人的原集和另一个人的补集合并。 从大到小排序,直到无法合并的时候就输出,这个时候就是答案。 我之前做(chao)过,这里就不写了。 第二种是二分答案+二分图判定。 显然,答案希望是越来越小,因为被隔离 阅读全文
posted @ 2018-10-12 21:52 Garen-Wang 阅读(135) 评论(0) 推荐(0)
摘要:毒瘤题!!! 这道题刷新了我对线段树懒标记维护的新认识。 显然可以得到我们要的$p$是线段树中所有点权值的平方和,$q$是原数字的和。 现在我们引入一些要用到的值: val数组。表示一个点的权值。 ssum数组。表示该 子树 的所有节点权值的平方和。显然$p=ssum[1]$。 len数组。表示一个 阅读全文
posted @ 2018-10-11 22:03 Garen-Wang 阅读(227) 评论(0) 推荐(0)
摘要:差分约束复习题。 这道题给了好多个限制,我们可以把限制抽象成图论问题。 那些先决条件的,一般抽象为toposort还是DAG中的dp等问题求解。 而像这道题一样的一大堆不等式和等式,我们使用差分约束。 首先注意一下:差分约束有两种类型! 一种类似于$a[v] \leq a[u] + b$,这种对于$ 阅读全文
posted @ 2018-10-10 22:03 Garen-Wang 阅读(156) 评论(0) 推荐(0)
摘要:数学很重要!! dalao们扫这道题就说“二项式定理”。二项式定理是这个东西: $$(x+y)^n=\sum_{i=0}^{n}{C_n^i \ x^i \ y^{n i}}$$ 应该没打错。真的没打错。 二项式定理当然不仅只满足于这些变量系数只为1的,只要系数扔进变量里面一起去乘方就可以了。 那么 阅读全文
posted @ 2018-10-10 21:53 Garen-Wang 阅读(125) 评论(0) 推荐(0)
摘要:临考A水题系列。。。 这道题很水,就是让你求逆序对。 树状数组做的跑得慢我不学,我学归并排序的。 逆序对在$a[i] a[j]$的时候有两种贡献的算法: 1. 2. 我偏向于第一种,为什么呢?因为紫书里面写的就是第一种。 代码: cpp include const int maxn = 5e5 + 阅读全文
posted @ 2018-10-10 21:43 Garen-Wang 阅读(142) 评论(0) 推荐(0)
摘要:终于学会了多重背包和混合背包!! 我们熟悉的背包问题不过就是01背包和完全背包。 但是多重背包如何处理? 一种方法是单调队列,但是我不会。这里介绍比较简便的二进制分解。 比如一件重为19的物品,我们通过二进制讲它分解为1、2、4、8、4。 前面的数字显然是从1开始的等比数列,而最后的是这个数剩下的余 阅读全文
posted @ 2018-10-09 21:58 Garen-Wang 阅读(119) 评论(0) 推荐(0)
摘要:数论题。。。 来源:luogu秋令营的模拟赛1T2 这道题数据极大,$N,T \leq 10000000$。 求的是$\sum_{i=1}^{n}{n \mod i}$。 看上去就是余数求和。打那道题的除法分块做法有70分。 接下来介绍满分做法: 变成这个式子: $$\sum_{i=1}^n{\lf 阅读全文
posted @ 2018-10-06 22:48 Garen-Wang 阅读(406) 评论(0) 推荐(0)
摘要:找到这个题了,顺便A掉美滋滋。 这道题用到一个非常有用的结论。没这个结论还没得做: $$\sum_{i=1}^{n}{d_1(i)} = \sum_{i=1}^{n}{\lfloor \frac{n}{i} \rfloor \times i}$$ 注意:整体还有等于,一个的话没有等于。 如果这个范围 阅读全文
posted @ 2018-10-06 16:13 Garen-Wang 阅读(176) 评论(0) 推荐(0)
摘要:黄题爆冷了怎么办在线等挺急的啊。。。 题目背景我很认真地看完了。 我哭了,你们呢? ~~一拳一个泪目怪~~ 这道题一眼看上去就是一个前缀和的。然后我就兴致冲冲地写了一发,交上去10pt,WA声一片。 最初的想法很弱智,我以为他给的星星是按x升序给的。 并且还有一点:星星可能会重合。一个点可能会有多个 阅读全文
posted @ 2018-10-05 21:49 Garen-Wang 阅读(165) 评论(0) 推荐(0)
摘要:刷数论模板啦。。。 在正事之前发现了一个小知识:组合数有两种书写方式。一种是形如$C_3^2$,另一种是形如$\binom{3}{2}$。这两者等价。 卢卡斯定理其实也简单的: $$\binom{m}{n}=\binom{m \mod p}{n \mod p} \times \binom{\lflo 阅读全文
posted @ 2018-10-05 21:01 Garen-Wang 阅读(193) 评论(0) 推荐(0)
摘要:get到新的求逆元方法了! 逆元在我的理解,就是模意义下的倒数。这个模一般是质数。没见过不是质数的。 所以总结下三个求逆元方法: 1. exgcd 原式$a \times a^{ 1} \equiv 1 \pmod p$ 根据同余的性质转换为$a \times a^{ 1} kp=1$ 使用exgc 阅读全文
posted @ 2018-10-05 20:53 Garen-Wang 阅读(206) 评论(0) 推荐(0)
摘要:暴力出奇迹,暴力吊打正解。。。 这道题看上去是求方案数,吓得我用dp写。但是我又不会dp,结果就爆零了。。。 于是痛心疾首的我怒打暴力回溯,一拿就拿了90pt。 最后加上了一个很小很小的小剪枝,冲到了最优解首页。。。 上面是扯淡的。 要写dp也好写啊!定义dp[i][j]为当前最后一个点是i,状态为 阅读全文
posted @ 2018-10-04 18:04 Garen-Wang 阅读(110) 评论(0) 推荐(0)
摘要:中国剩余定理的模板题。 虽然说是CRT的模板,但是我不会CRT啊。~~我只会EXCRT~~ 思路很清晰,都写在注释里面了。不懂的话看看我前面写过的一篇模板题的随笔。 PS:很荣幸能够帮到 "@niiick" 大佬。我帮大佬指正了一个小学生才纠结的东西。。。 代码: cpp include inclu 阅读全文
posted @ 2018-10-04 17:56 Garen-Wang 阅读(150) 评论(0) 推荐(0)
摘要:splay水题。。。 本来我一看上去是懵的。脑(fan)洞(le)大(ti)开(jie)发现可以用splay来做。 构造一颗按大小排序的splay,每当弄进奇数个的时候就求一下第k大就行了。 只不过这些东西是可重的,要写一个cnt,别的没了。 代码: cpp include const int ma 阅读全文
posted @ 2018-10-04 17:52 Garen-Wang 阅读(161) 评论(0) 推荐(0)
摘要:EXCRT模板。我连没EX的CRT都不会打。。。 普通的CRT只能处理那些模互质的,而对于那些不互质的就没办法了。 那么我们引入新的算法来解决这个问题。 先说一下:EXCRT的算法跟CRT区别挺大的。几乎不是同一个算法。 假设我们已经求出了$z 1$个方程的解,满足的一个解为$ans$,当前已经求出 阅读全文
posted @ 2018-10-04 00:49 Garen-Wang 阅读(197) 评论(0) 推荐(0)
摘要:思路没有了!!!小心!!! 这道题的思路是dfs,每次判断这个点能不能进队。 如果能进队就进来看看,但是也可以不进,不能的话就一定不进了。 如何判断能进队?类似于八皇后,跟前面看看矛不矛盾就可以了。 代码等我过两天打得出来再发。 阅读全文
posted @ 2018-10-02 23:47 Garen-Wang 阅读(181) 评论(0) 推荐(0)
摘要:第一道正式的模拟退火。真香! ~~师兄说我又疯了~~ 这道题要在二维平面上找一个点使这个系统稳定。 化学老师说:能量越低越稳定。这句话在物理也适用。 所以我们要做的就是使 这些物品的重力势能尽可能低 。 但是又不知道绳子长度啊! 傻瓜,只需要 在桌子部分的绳子尽量长 就可以了啊! 所以我们说到底要求 阅读全文
posted @ 2018-10-02 16:42 Garen-Wang 阅读(149) 评论(0) 推荐(0)
摘要:manjaro下vim配置和YouCompleteMe插件的安装 前言 我Garen Wang就是饿死,死外边,从下面跳上去,也不会卸载掉ubuntu玩别的distribution!!! ~~真香~~ ubuntu因为字体出锅,外加知乎里面好多人在吹manjaro,我就来安装玩一玩。 vim的安装 阅读全文
posted @ 2018-10-01 23:29 Garen-Wang 阅读(2501) 评论(0) 推荐(0)
摘要:菜鸡刷模板系列。。。 这道题其实是可以二分的,但是有更好的算法,叫做三分。 三分这种算法用于求单峰函数的最大值或者最小值。 算法思想就是弄$(l, r)$区间的两个三等分点,然后来缩小范围。 因为这道题是求峰顶,所以我们可以~~模拟退火~~通过两个三等分点的大小关系来缩小范围。 我们把那个值小的那边 阅读全文
posted @ 2018-10-01 23:10 Garen-Wang 阅读(200) 评论(0) 推荐(0)
摘要:事后觉得又简单又难。。。 事后觉得又简单又难。。。 这道题如果这个$l$不大的话就是一道水得不得了的水题,不过数据那么大就有点难度了。 显然我们可以离散化,具体的操作就是缩点与点之间的距离。我这里用到的是2520缩。 $$2520=lcm(1,2,3,...,10)且1 \leq s \leq t 阅读全文
posted @ 2018-10-01 20:54 Garen-Wang 阅读(110) 评论(0) 推荐(0)