随笔分类 - OI题解
摘要:题目链接:BZOJ - 5282题目分析LCS 就是用经典的 O(n^2) DP 解决,f[i][j] 表示 x 串前 i 个字符与 y 串前 j 个字符的 LCS 长度。f[i][j] = max(f[i - 1][j], f[i][j - 1]);if (x[i] == y[j]) f[i][j...
阅读全文
摘要:题目链接:BZOJ - 4103题目分析THUSC滚粗之后一直没有写这道题,从来没写过可持久化Trie,发现其实和可持久化线段树都是一样的。嗯,有些东西就是明白得太晚。首先Orz ZYF-ZYF 神犇的题解。题目给出的 n 和 m 的范围差别很大,n 很小,m 很大,因此可以想到 n 的范围是为了直...
阅读全文
摘要:题目链接:BZOJ - 4033题目分析使用树形DP,用 f[i][j] 表示在以 i 为根的子树,有 j 个黑点的最大权值。这个权值指的是,这个子树内部的点对间距离的贡献,以及 i 和 Father[i] 之间的边对答案的贡献(比如这条边对黑点对距离和的贡献就是子树内部的黑点数 * 子树外部的黑点...
阅读全文
摘要:题目链接:BZOJ - 1150题目分析可以看出,我们选的 k 条边一定是相邻两点之间的线段。我们可以将每条边看成一个点,那么我们就是要在 n-1 个点中选出互不相邻的 k 个,使它们的和最小。我们使用一种神奇的贪心,开始的时候将所有的点权加入堆中,然后取 k 次,每次取权值最小的点,然后将这个点的...
阅读全文
摘要:题目链接:BZOJ - 3774题目分析此题与“文理分科”那道题目有些类似。都是使用最小割来求解,先加上可能获得的权值,在减掉必须舍弃的权值(最小割)。文理分科是规定每个人和 S 连就是选文,和 T 连就是选理。然后如果一个人和相邻的人都全文就会获得一个权值,那么我们就为这个权值建一个点,让这个点与...
阅读全文
摘要:题目链接:XJOI - NOI2015-13 - C题目分析使用神奇的线段树合并在 O(nlogn) 的时间复杂度内解决这道题目。对树上的每个点都建立一棵线段树,key是时间(即第几次操作),动态开点。线段树的节点维护两个值,一个是这段时间内的 1 操作个数,另一个是这段时间内变化的黑色节点权值和。...
阅读全文
摘要:题目链接:BZOJ - 2212题目分析子树 x 内的逆序对个数为 :x 左子树内的逆序对个数 + x 右子树内的逆序对个数 + 跨越 x 左子树与右子树的逆序对。左右子树内部的逆序对与是否交换左右子树无关,是否交换左右子树取决于交换后 “跨越 x 左子树与右子树的逆序对” 是否会减小。因此我们要求...
阅读全文
摘要:题目链接:XJOI - NOI2015-13 - B题目分析通过神奇的观察+打表+猜测,有以下规律和性质:1) 删除的 n 个数就是 1~n。2) 当 c = 2 时,如果 n + 1 是偶数,答案是 lcm(n + 1, (n + 1) / 2 * 3) = 3(n + 1),如果 n + 1 是...
阅读全文
摘要:题目链接:XJOI NOI2015-13 A题目分析首先,题目定义的这种矩阵有一个神奇的性质,第 4 行与第 2 行相同,于是第 5 行也就与第 3 行相同,后面的也是一样。因此矩阵可以看做只有 3 行,从上到下就是 1 2 3 2 3 2 3 ......然后我们使用分块,将每一行分成 sqrt(...
阅读全文
摘要:题目链接:XJOI - NOI2015-07 - B题目分析题意:过一个点 P 的所有直线,与点集 Q 的最小距离是多少?一条直线与点集的距离定义为点集中每个点与直线距离的最大值。题解:二分答案,对于一个二分的距离,我们可以求出对于每个点的可用的极角范围,然后判断 n 个点的极角范围有没有交即可。听...
阅读全文
摘要:题目链接:BZOJ - 1009题目分析题目要求求出不包含给定字符串的长度为 n 的字符串的数量。既然这样,应该就是 KMP + DP ,用 f[i][j] 表示长度为 i ,匹配到模式串第 j 位的字符串个数,然后转移就是可以从第 j 位加上一个字符转移到另一个位置。然而..我并没有写过KMP +...
阅读全文
摘要:题目链接:BZOJ - 2048题目分析只有一本书时,这本书的重心落在桌子边缘上,伸出桌面的长度就是 1/2。有两本书时,第一本书的重心就落在第二本书的边缘上,两本书的重心落在桌子边缘上,两本书的重心就是在最下面一本书的右端 1/4 处。那么伸出 1/2 + 1/4 。三本书时,可以再多伸长 3 本...
阅读全文
摘要:题目链接:BZOJ - 2738题目分析题目名称 “矩阵乘法” 与题目内容没有任何关系..就像VFK的 A+B Problem 一样..题目大意是给定一个矩阵,有许多询问,每次询问一个子矩阵中的第 k 小值。我看了神犇的题解,使用一种非常神奇的做法:将矩阵中的数排个序,从小到大填到矩阵中。每次填 S...
阅读全文
摘要:题目链接:BZOJ - 2721题目分析题目大意:求出 1 / x + 1 / y = 1 / n! 的正整数解 (x, y) 的个数。显然,要求出正整数解 (x, y) 的个数,只要求出使 y 为正整数的正整数 x 的个数,或者求出使 x 为正整数的正整数 y 的个数即可。那么我们来转化一下这个式...
阅读全文
摘要:题目链接:CF Round #254 div1 C题目分析这道题目是要实现区间赋值的操作,同时还要根据区间中原先的值修改区间上的属性权值。如果直接使用普通的线段树区间赋值的方法,当一个节点表示的区间完全被要求修改的区间包含时,就直接打上赋值的标记然后 return 。但是这样这个节点中每个位置原先的...
阅读全文
摘要:题目链接:HDOJ - 5212题目分析首先的思路是,考虑每个数对最终答案的贡献。那么我们就要求出:对于每个数,以它为 gcd 的数对有多少对。显然,对于一个数 x ,以它为 gcd 的两个数一定都是 x 的倍数。如果 x 的倍数在数列中有 k 个,那么最多有 k^2 对数的 gcd 是 x 。同样...
阅读全文
摘要:题目链接:BZOJ - 3530题目分析明显是 AC自动机+DP,外加数位统计。WZY 神犇出的良心省选题,然而去年我太弱..比现在还要弱得多..其实现在做这道题,我自己也没想出完整解法..就想出了个 O(l^3) 的做法:完全按照数位统计的思想来,先统计长度不足 len 的数字的合法种类数,这个枚...
阅读全文
摘要:题目链接:BZOJ - 3531题目分析题目询问一条路径上的信息时,每次询问有某种特定的文化的点。每个点的文化就相当于一种颜色,每次询问一条路径上某种颜色的点的信息。可以使用离线算法, 类似于“郁闷的小 J ” 那道题目。将各种操作和询问按照颜色为第一关键字,时间为第二关键字排序。那么修改颜色的操作...
阅读全文
摘要:题目链接:BZOJ - 1014题目分析求两个串的 LCP ,一种常见的方法就是 二分+Hash,对于一个二分的长度 l,如果两个串的长度为 l 的前缀的Hash相等,就认为他们相等。这里有修改字符和插入字符的操作,所以用 Splay 来维护串的 Hash 值。一个节点的值就是它的子树表示的字串的 ...
阅读全文
摘要:题目链接:BZOJ - 3995题目分析这道题..是我悲伤的回忆..线段树维护连通性,与 BZOJ-1018 类似,然而我省选之前并没有做过 1018,即使它在 ProblemSet 的第一页。更悲伤的是,这道题有 40 分的暴力分,写个 Kruskal 就可以得到,然而我写了个更快的 DP 。这本...
阅读全文

浙公网安备 33010602011771号