10 2020 档案
摘要:洛谷传送门 CF传送门 今天ChPu437大神讲了这个题,我也来写篇题解加深理解。 Solution 看题,什么又是方案数?我反手就是一个计数DP 我们转化题意,可以将一个人旧的座位和新的座位假装建一条边 那么这就是一张图,并且可能有多个连通块 因为每个连通块之间是互不影响的,所以我们可以分开考虑然
阅读全文
摘要:洛谷传送门 CF传送门 题意 给你一个 个点的图,其中有 条线段。求该图形是否为旋转对称图形。 Solution 我们设旋转 个点可以和原图形重合,那么 个点也可以 反过来,已知旋转一圈就是原图形,此时旋转了 个点,我们只要找
阅读全文
摘要:洛谷传送门 CF传送门 题意 有 个硬币,每个硬币有一种颜色,是R,G,B中的一种。可以选择两个硬币进行询问颜色是否一样,每次可以同时询问若干对硬币(一个硬币不能同时属于两对)。最多7次询问,将硬币分为颜色不同的三组。 Solution 这是个思维很棒的交互题。 我们可以先询问两次: 1
阅读全文
摘要:洛谷传送门 为什么总有人说这是长链剖分板子题? Solution 题意非常简洁,这让我少了转化题意这一步。 我们考虑什么样的三个点在树上满足两两之间距离 相等: 对于某一个点,它的子树内以它为LCA,距它 的三个点 对于某一个点,它的 级祖先以及子树内两个以它为L
阅读全文
摘要:洛谷传送门 CF传送门 正好学校考试考到过一个加强版,写一写。 Solution 很明显的DP 如果 ,设 表示到 位置之前不同的子序列数,可以得到两个转移方程: 第 位的字符之前没有出现过,方程就是 \(f_i=2\times f_{i-1}
阅读全文
摘要:题目 Solution 首先,我学过的线性基有三个性质 原序列里的任意一个数都可以通过线性基中的一些数异或得到 线性基里的任意一些数异或起来都不能得到 线性基里面的数的个数唯一,在性质一的前提下,有最少的数 (唯一指的是每个序列的线性基的元素数量唯一但线性基不一定唯一) 现在稍微说一下性质三
阅读全文
摘要:原题 Solution 这是个计数题。 我直接正难则反 我们观察题面,发现一个很重要的条件 ,我们这里设 ,那么也就是如果填入的每个数都不同行,也会有一行是空出来什么都没有的。 我艸,妙啊 继续想,这一行是空的,别的行需要满足乘积为
阅读全文
摘要:洛谷传送门 CF传送门 今天ChPu437大神讲了这个题,我也来写篇题解加深理解。 Solution 看题,什么又是方案数?我反手就是一个计数DP 我们转化题意,可以将一个人旧的座位和新的座位假装建一条边 那么这就是一张图,并且可能有多个连通块 因为每个连通块之间是互不影响的,所以我们可以分开考虑然
阅读全文
摘要:题目传送门 Solution 我们先考虑其中一个问题: 可以简单的移项得到: 或 。 看到这里你可能还不知道是什么 再看看数据范围 我直接暴力 说明我们可以找一些复杂度不太大而且和不等式有关
阅读全文
摘要:洛谷题目 CF原题 见过计数DP,也见过字符串的计数DP,但是这样的是第一次见。 Solution 看到要求方案数,那么一定是计数DP了。这字符串你还想用组合数? 但是设计什么状态能够得到最后答案呢?限制有点多诶^_~ 发现题面中的两种运算都是对称的,一个往字母表后,另一个必定往前。 等等,字母表?
阅读全文
摘要:原题 Solution1 考虑如果白牛不能变花牛 如何迅速统计区间牛的数目——利用前缀和统计,设每个牛的 ,求 那么如何迅速判断是否满足白牛数=花牛数——不妨设白牛的 ,花牛的 ,那么区间 \((l
阅读全文
摘要:原题 Solution 考虑贪心。 那么 的肯定都选,因为这样不会使答案变劣 重点就是 之间怎么选 首先, 肯定是最劣的,所以先考虑 。 有一个结论是:在最优情况, 全部选出,或者 全部
阅读全文
摘要:这个题的重点是转移方程的优化和匹配字符串的技巧,所以我们分开讲。 Solution——字符串匹配 1.KMP算法 因为是首尾拼接,所以拿KMP算法将nxt数组算出来。可以更简便的运算第 种字符串接在第 种结尾的最小增加量。 for(int k=1;k<=n;k++){ int
阅读全文
摘要:呜呜呜,本蒟蒻第一次做卡特兰数,实在是太菜了。写一个题解加深记忆。 Solution 首先,题里面说明 和 ,可得偶数位上的数比它前面任意一个数都要大。 那么我们可以将题意转化为:将 ~
阅读全文
摘要:同机房大佬minxu讲解了这个题,使蒟蒻我受益匪浅。 再加上蒟蒻写的计数DP题不超过 0 道,所以遇到这种好题赶紧写题解加深印象。 Solution 因为每一层之间是有互相影响的,所以不能直接用组合数求解,考虑使用计数DP。 我们先处理只在一行内的彩球的方案数 设 表示有 \
阅读全文
摘要:Solution 一句话题意:求架子上和 互质的数的 个数=总个数-和 不互质的数的个数。 那么求和 不互质的数就是经典容斥问题了。 因为所有数都能以一个 的形式表示出来,并且一个数的质因子个数最多有七个(因为 $2\cdo
阅读全文
摘要:Solution 本来想的是枚举 的倍数的,以为一定能搜到解的,然后看了眼英文发现“无解输出-1”,就果断去想搜索了。 用啥搜? 因为这个题要求最小数 ,所以不能用dfs,应该用bfs+记忆化搜索,这样是可以保证最小的。 然后设计搜啥? 因为只和各位相加和 与 \
阅读全文
摘要:Solution 可以设横向切了 次,则纵着切了 刀,为使最小值最大化,所以要切的均匀。那么 \(ans=\left\lfloor\dfrac n{x+1}\right\rfloor\cdot\left\lfloor\dfrac m{k-x+1}\right\rfloor
阅读全文
摘要:这个题真的和关路灯很像,可以去看看。 Solution 有很多题解都没提到怎么看出来的区间DP,这里说一下。(有人做了一些题,就有思路,说不定有没做啥题的) 首先可以明确的是, Sue 不可能经过一个彩蛋不收集,也就是收集的彩蛋的编号应该是连续的。因为路过不收,~~这不zz?~~不就是看着彩蛋价值变
阅读全文
摘要:Solution 先考虑不进行操作时,怎么吞噬可以得到最多的危险次数。 有一个结论是:挑最轻的两条鱼合并,可以使答案最大。 我们简单证明一下:设鱼这个集合为 ,那么一次操作就是从中取出两个最小的元素 和 ,并把 插入 。设某次操作 \(
阅读全文
摘要:调了半天,发现是没开long long Solution 看这个题的时候,第一想法是按时间排序,然后朴素DP,但这样差不多是 的。 所以我们需要考虑更优的解法。 不难发现,只有当 两点满足 \(|x_i-x_j|\leq |t_i-t_j|\tim
阅读全文
摘要:Solution 能够显然的想到每个人传递必然是连续的,也就是对于一个 ,他能够到达的区间为 。 下一次,就会转移到 中能往左和往右的最远端点,所以我们需要记录最值,那么不难想到用ST表去处理区间最值。 设
阅读全文
摘要:听同机房大佬sky说这是平衡树好题,再加上本蒟蒻刚刚学习平衡树,所以写个题解加深记忆。 Solution 我们看见一操作是移动操作(连个修改都没有),可以想到拿平衡树进行维护整个序列,这是很显然的。 然后看二操作,询问区间某个数的出现次数。 好像我所学过的平衡树是没有这种技能的(可能是我太菜没听说)
阅读全文
摘要:Solution 首先明确的是对每一次询问分开处理。 然后因为要求最大价值,可以想到用DP去做。设 表示前 个元素,以 颜色为结尾的最大价值。可以发现,每一个 最多只会更新一个 ,所以可以将第一维省略掉。 接下来我们思考第 \
阅读全文
摘要:Solution 这个题经过一番思考,发现前面一位和后面一位之间是不会相互影响的,也就是各自的贡献是独立算的。 那我们就直接通过一些排列组合的方式来求出答案即可。 刚刚我提到了贡献,所以我们可以对这个括号序列的每一位进行计算,最后相加。然后发现因为他们是成对匹配的,当你算左括号的时候,右括号已经被算
阅读全文
摘要:Solution 虽然每个题要求的最长序列的满足条件不一样,但是方法总是那一个——DP。 因为前后转移和 有关系,我们可以将 用因子的方式表示。 我们设 表示以 结尾的最长序列, 为所有含有 这个因子的
阅读全文
摘要:题意 松鼠bored在看小马,现在他要逃避掉下来的石头,石头总是落在bored所在的区间的中间。他有两种选择,一种是向左'l',使区间右端点变为原来的区间中间,一种是向右'r',使区间左端点变为原来的区间中间。bored已经想好了自己的行动路线,为了让他可以继续看小马,请你告诉他下落石头从左到右的编
阅读全文
摘要:我这里和别人不一样的是取模加和乘(我觉得这个东西很好,可能会快一点? Solution 首先,它让我们算方案数,所以我们设一个数组 表示完美数恰好为 的排列数,又由这熟悉的恰好,可以再设一个数组 表示完美数至少为 的排列数,那么显然可以得到
阅读全文
摘要:Solution 首先,能够比较明显的看出来,它的路径类型都是形如 ,所以我们能够想到倍增。 然后我们观察数据范围,发现 。我去,那我乱搞不就行了 考虑倍增的DP,设状态 为从 到 存在一条以
阅读全文
摘要:题意 在一个长度为 的序列中,找 个长度互不相同的区间互不重叠,求方案数。 Solution 经过简单的计算,发现普通的组合数并不能直接把方案数算出来,因为要考虑的情况实在太多了。那么我们可以考虑另一种能够算出方案数的方法——计数DP。 在上面的题意中,我将本题目的重点加粗了
阅读全文
摘要:Solution 我们可以对前 个元素询问 次,因为题目中明确说明 ,所以是不会超的。 这样做的正确性:每次会少一个数,当你少的是第 个数之前的数或 时,返回的会是第 大的数,当你少的是 之后的数时,
阅读全文
摘要:Solution 想要得到差最大,只能是最小的自己一组或者全部在一组,因为:如果拿另一个和最小的一组,最小值只有可能最小,最大值只有可能更大,反证完毕。 那么我们可以将 数组从小到大排序,那么现在 是 , 是 ,
阅读全文
摘要:Solution 通过最短路和 得知我们可以拿 预处理全源最短路。然后因为要换车,所以我们可以考虑dp,设 为 到终点 的最坏换车次数,但是从起点开始可能会有后效性,所以从终点开始,即 为 $
阅读全文
摘要:Solution 看题和 有关系,所以我们可以先考虑一下质数,然后发现对于质数 ,当他不 即满足条件的时候,是 出现的时候,因为 。 现在考虑合数,分两种情况,一种是形似 的( \(p
阅读全文
摘要:Solution 这个题意思很显然,是求 个区间重叠最多的地方和值。 那么我们能想到用差分数组,在扫一遍的过程中维护最大值和 。 但是需要注意的是,区间最大会到 ,直接差分是不行的,我们需要先对所有 和 进行离散化,然后再去差分。 代
阅读全文