04 2019 档案

摘要:嘟嘟嘟 敲,要是会kruskal重构树,这题也太水了吧。 真的,我感觉模板题都比这难。 首先用dijkstra求出点1到每一个点的最短路,然后以$a$为关键字把边从大到小排序建出kruskal重构树。这样这棵树就是一个小根堆。 对于每一个询问,从$v$倍增往上跳,直到有一个点$x$满足$a[x] > 阅读全文
posted @ 2019-04-30 16:00 mrclr 阅读(139) 评论(0) 推荐(0)
摘要:嘟嘟嘟 今天刷了一下NOI2018Day1的题,T1不会kruskal重构树就敲了60分暴力。 于是特意找了一条kruskal重构树板子刷一下。 这东西不难,感觉还挺有意思的。 这篇博客简明易懂:Kruskal重构树—学习笔记。 对于这道题,我们建完重构树后,对于每一个询问,倍增向上跳到小于等于$x 阅读全文
posted @ 2019-04-30 15:14 mrclr 阅读(183) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题思路和今年省选D1T1特别像(不对,应该是D1T1和这道题特别像)。 反正省选前我是没做,做了考场上那题也不一定能写出来(虽然确实不难)。 这题就是先求一个前缀和,然后维护一个大根堆,里面存一个三元组$(val, id, rk)$,表示以$id$为右端点,长度在$L, R$之间的$sum 阅读全文
posted @ 2019-04-30 07:25 mrclr 阅读(152) 评论(0) 推荐(0)
摘要:嘟嘟嘟 就这么建。 ——— #include<cstdio> #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #include<cstdlib> #include<cctype> #include<ve 阅读全文
posted @ 2019-04-29 20:03 mrclr 阅读(189) 评论(0) 推荐(0)
摘要:"嘟嘟嘟" 首先这题虽然不是很难,但是黄题是不是有点过分了……好歹算个蓝题啊。 手玩样例得知,这哥们儿瞬移到的城市$A$一定是这些被攻击的城市构成的树的一个叶子,然后他经过的最后一个城市$B$和$A$构成的链一定是这棵新构成的树的直径(突然想到虚树)。 别激动,这题根本不用虚树。 我们只用求一遍树的 阅读全文
posted @ 2019-04-29 17:43 mrclr 阅读(241) 评论(0) 推荐(0)
摘要:"嘟嘟嘟" 这题有点意思。 手玩得知,连上一条边后,形成的环只用走一次,剩下的还要走两次。 因此$k = 1$就是求树的直径。 $k = 2$怎么办咧?也是先求一遍树的直径,然后我就想,连上端点后就变成了一个基环树,我们要在这个基环树上再连一条边,使(新形成的环的长度) (与原环相交长度)尽可能大。 阅读全文
posted @ 2019-04-29 16:23 mrclr 阅读(249) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题思路和[SCOI2007]修车以及POJ3686 The Windy's都一样,只不过数据是加强版。 从$n$盘菜变成了$p$盘菜,暴力拆点建图就不好用了,所以得优化。 这个优化我觉得比较难想,因为网络流一般都是考建图,对算法本身并没有什么考察。但这个优化却得用到费用流的性质。 费用流的 阅读全文
posted @ 2019-04-29 14:39 mrclr 阅读(143) 评论(0) 推荐(0)
摘要:嘟嘟嘟 看$n$那么小,就知道是网络流。然后二分,按时间拆点。 刚开始我看成所有航班一天只能起飞一次,纠结了好一会儿。但实际上是每一个航班单独考虑,互不影响。 建图很显然,拆完点后每一个点的第$i$天向和他相连的点的第$i + 1$天连边,同时自己的第$i$天也要向第$i + 1$天连边。 刚开始数 阅读全文
posted @ 2019-04-29 09:33 mrclr 阅读(155) 评论(0) 推荐(0)
摘要:嘟嘟嘟 省选Day1真是重大失误,T2连暴力都没时间写。 上周五重新答了遍Day1,竟然搞了187分吼吼吼吼。 T2按40分写的暴力,结果竟然得了60分。 稍微说一下暴力吧:预处理哈希,对于一组支配关系$A_i$, \(B_i\),用哈希判断$B_i$是哪些$A$串的前缀,是的话就连边$(A_i, 阅读全文
posted @ 2019-04-28 22:09 mrclr 阅读(148) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题真没想到这么简单…… 首先有60分大礼:$O(n ^ 2logn)$贪心。(我也不知道为啥就是对的) 然后又送15分链:维护两个堆,每次去堆顶的最大值。 这时候得到75分已经很开心了,但其实离AC也就差一点点。 链的做法已经给了我们提示:合并两个堆。其实这就相当于二叉树。那多叉树呢?就合 阅读全文
posted @ 2019-04-28 19:49 mrclr 阅读(227) 评论(0) 推荐(0)
摘要:嘟嘟嘟 做这题之前,强烈推荐先把这道题切了P1631序列合并。 这两道题思路基本一模一样。 首先把异或处理成前缀异或,然后维护一个大根堆,每一次取出堆顶加到答案里面,然后把堆顶所在元素的次大的异或值放进堆里。这样循环$k$次,就是答案。 关键在于对于数$sum[i]$,怎么找异或第几大。众人皆知是建 阅读全文
posted @ 2019-04-28 17:18 mrclr 阅读(322) 评论(0) 推荐(0)
摘要:嘟嘟嘟 都说这题是斯坦纳树的板儿题。 斯坦纳树,我也不知道为啥起这么个名儿,斯坦纳树主要用来解决这样一类问题:带边权无向图上有几个(一般约10个)点是【关键点】,要求选择一些边使这些点在同一个联通块内,同时要求所选的边的边权和最小。(摘自兔哥博客) 但说白了就是一种状压dp。令$dp[i][j][S 阅读全文
posted @ 2019-04-28 14:59 mrclr 阅读(218) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题有一些别的瞎搞神奇做法,而且复杂度似乎更优,不过我为了练线段树,就乖乖的官方正解了。 做法就是线段树优化建图+强连通分量缩点+DAGdp。 如果一个炸弹$i$能引爆另一个炸弹$j$,就从$i$向$j$连边。然后我们从图上每一个点dfs,能走到的点就是他最终能引爆的炸弹数量。 但这个复杂度 阅读全文
posted @ 2019-04-28 09:10 mrclr 阅读(269) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题只要往正确的方面想,就很简单。 首先,这是一道图论题! 想到这,这题就简单了。对于两个数$i$和$j$,如果$i$比$j$大,就从$i$向$j$连边。然后如果图中存在环的话就无解,否则DAG上dp就完事啦。 但是如果暴力连边,最高就能达到$O(k ^ 3)$复杂度。然后考虑到是向连续区间 阅读全文
posted @ 2019-04-27 21:16 mrclr 阅读(265) 评论(0) 推荐(0)
摘要:嘟嘟嘟 省选Day1T2不仅考了字符串,还考了线段树优化建图。当时不会,现在赶快学一下。 线段树能优化的图就是像这道题一样,一个点像一个区间的点连边,或一个区间像一个点连边。一个个连就是$O(n ^ 2)$复杂度了,当然承受不起。于是就有了线段树了。 原理很简单,就是把一个连续区间的点合并成线段树上 阅读全文
posted @ 2019-04-27 14:44 mrclr 阅读(244) 评论(0) 推荐(0)
摘要:嘟嘟嘟 主席树+区间修改。 以为是水题,写着写着发现区间修改标记下传会出问题,然后想了想发现以前做的只是单点修改。 那怎么办咧? 然后题解交了我标记永久化这个神奇的东西。 特别好理解,就是修改的时候直接把多的就加到这个区间上,直到找到区间满足l == L && r == R,这时候再打个标记。然后查 阅读全文
posted @ 2019-04-26 09:40 mrclr 阅读(122) 评论(0) 推荐(0)
摘要:嘟嘟嘟 要不这篇博客我水一下? 思路很显然,点分治+01分数规划+单调队列。 但就是难写。 点分治的时候我们把每一个点到重心这条链按深度排序,然后对于每一个点的链就有一个连续深度的区间可以和这条链拼上,因为要找一条权值大于$0$的链,那就相当于找这个区间的最大值。然后随着点深度递增,这个区间就不断向 阅读全文
posted @ 2019-04-26 08:40 mrclr 阅读(221) 评论(0) 推荐(0)
摘要:嘟嘟嘟 突然感觉虚树挺有意思的。 不过对于虚树的构建方法,我只是大概懂了,有些细节还是不清楚,所以现在算是半背着写吧。 对于这道题,我们构建完虚树后(我是真的建出来了,没有用什么dfs序的性质),首先要求出来的是虚树上的点都被哪些点控制,毕竟虚树上不是所有点都是关键点,有些是他们的lca。 因为有些 阅读全文
posted @ 2019-04-26 08:25 mrclr 阅读(195) 评论(0) 推荐(0)
摘要:嘟嘟嘟 好题,好题 刚开始突发奇想写了一个$O(n ^ 2)$暴力,结果竟然过了?!后来才知道是上传题的人把单个数据点开成了10s…… 不过不得不说我这暴力写的挺好看的。删边模仿链表删边,加边的时候遍历其中一棵树,使两棵树染上相同的颜色,这样判联通就能达到$O(1)$了。 所以我决定先放一个暴力代码 阅读全文
posted @ 2019-04-25 17:53 mrclr 阅读(137) 评论(0) 推荐(0)
摘要:"嘟嘟嘟" 这题跟[APIO2014]序列分割极像,做法也几乎相同。 首先令$dp[i][j]$表示前$i$个数分为$j$段的最小方差,转移方程也很简单,就是枚举和上一段的分割位置。 唯一恶心的就是化简式子。 大力推方差式子后,得出了这个东西: $$ns ^ 2 = \sum _ {i = 1} ^ 阅读全文
posted @ 2019-04-25 14:09 mrclr 阅读(251) 评论(0) 推荐(0)
摘要:"嘟嘟嘟" 复习一下斜率优化,感觉已经忘得差不多了…… 这题切入点在与 答案跟切的顺序无关 。 证明就是假如有三段权值分别为$x, y, z$,那么这两刀不管按什么顺序切,得到的结果都是$xy + xz + yz$。 然后就可以dp。 令$dp[i][j]$表示前$i$个数切$j$刀的最大得分,于是 阅读全文
posted @ 2019-04-25 10:00 mrclr 阅读(196) 评论(0) 推荐(0)
摘要:对于上下界网络流,以前只会建图,不会证明,今天我算是会证了。 (头一次证明图论啊,耶!) 众所周知,网络流的一条可行流必须满足两个条件:流量守恒和容量限制。 我们记有向图$G$的一条从$u$到$v$的边的容量为$c(u, v)$,流量为$f(u, v)$,那么上述连个条件就可以形式化的写成: $$\ 阅读全文
posted @ 2019-04-24 22:43 mrclr 阅读(241) 评论(0) 推荐(0)
摘要:嘟嘟嘟vjudge 我今天解决了一个历史遗留问题! 题意:给一棵树,写一个东西,支持一下两种操作: 1.$x$到$y$的路径上的每一个点的权值加$d$。 2.求$x$到$y$路径上所有点权的gcd。 树上路径操作自然能想到树剖,但问题在于区间加操作不好维护。 因此我们先考虑序列上的操作。 求gcd, 阅读全文
posted @ 2019-04-21 08:09 mrclr 阅读(271) 评论(0) 推荐(0)
摘要:原根以前没学懂,今天重新学了一下。 19.07.02update:忘了,又重新学了一下。 19.07.09update:耶我记住了。 定义 先引出阶的定义: 若$(a, n) = 1$,则满足$a^r \equiv 1 (mod \ \ n)$的最小整数$r$,称为$a$模$n$的阶。 首先$r$是 阅读全文
posted @ 2019-04-20 20:58 mrclr 阅读(540) 评论(0) 推荐(0)
摘要:嘟嘟嘟 最近把21天漏的给不上。 今天重温了一下2-SAT,感觉很简单。就是把所有条件都转化成如果……必然能导出……。然后就这样连边建图,这样一个强连通分量中的所有点必然都是真或者假。从而根据这个点拆点后的两个点是否在一个强连通分量里判断是否有解。 这题人很容易想到拆点:$i$表示$i$连向$s_1 阅读全文
posted @ 2019-04-20 15:30 mrclr 阅读(143) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-04-20 10:23 mrclr 阅读(11) 评论(1) 推荐(0)
摘要:嘟嘟嘟 省选竟然考了一个可持久化trie,就挑着我不会的考。 话说考场上我确实写了一个trie的做法,只不过一直没调出来然后就只剩暴力分了。 现在想想实在是太蠢了,明明对算法没有把握,却头脑一热在这题上刚了两个点,为什么就不先把第二题的暴力写写呢………………………… 学过主席树,就觉得可持久化tri 阅读全文
posted @ 2019-04-12 22:23 mrclr 阅读(161) 评论(0) 推荐(0)
摘要:嘟嘟嘟 LCA水题,第二问看一下$x$到$lca$的路径长度是否够$k - 1$,不过的话就从$y$出发往上跳。 #include<cstdio> #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #in 阅读全文
posted @ 2019-04-04 16:46 mrclr 阅读(149) 评论(1) 推荐(0)
摘要:嘟嘟嘟 今天复习一下SAM。 lcp固然不好做,干脆直接翻过来变成后缀。首先答案一定满足单调性,所以我们二分lcp的长度$mid$,然后判断$s[d \ldots d + mid - 1]$是否在$s[b \ldots a]$(别忘了整个串是反过来的)中出现即可。 怎么判断是否出现呢?其实就是判断这 阅读全文
posted @ 2019-04-03 14:41 mrclr 阅读(236) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题当时没想出来(因为本人实在不太擅长计数),然后又被luogu的第一篇题解吓怕了,就咕了一小段时间再写。 其实这题不是很难。 做法就是基础容斥+NTT。 首先出现$S$次的颜色最多有$N = min { \frac, m }$种。 我们令$dp[i]$表示出现$S$次的颜色至少有$i$种的 阅读全文
posted @ 2019-04-02 22:14 mrclr 阅读(168) 评论(0) 推荐(0)
摘要:"嘟嘟嘟" 昨天模拟T2 lba和dukelv都说和这题特别像(然而他俩还是没做出来hhhh),我今天一看,果不其然,大体思路都一样。 但自认为这题比模拟题要难一些,自己也是因为没有彻底理解浪debug了半天,导致费了很长时间。 当$n \leqslant 30$时,因为质数只有最多10个,所以可以 阅读全文
posted @ 2019-04-02 16:08 mrclr 阅读(173) 评论(0) 推荐(0)