自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 CF1215E Marbles 题解

发现这个巨大的复杂度是因为我们考虑了所有颜色之前的顺序关系,因此我们不需要考虑全部颜色之间的关系,只需要关注颜色两两之间的关系。我们不难发现把所有颜色块合并之后,两个颜色之间的位置关系是唯一的,即对于不同颜色。这个时候我们只需要一个颜色一个颜色的加,把这个颜色的块全部放到左边(右边也行),然后在新加一块之前,我们只需要计算这个颜色与前面所有颜色之间的贡献和再加上前面的所有颜色对答案的贡献即可。所以我们考虑预处理颜色两两之间的关系造成的贡献,然后两两之间统计答案,这个过程的复杂度为。的左侧,要么全部在右侧。

2023-07-25 18:26:03 61

原创 AT_dp_v Subtree 题解

考虑同时做前缀乘和后缀乘,计算对子树的贡献只需要将前缀乘和后缀乘相乘即可,虽然多了几个。但是考虑到根的答案处理出来后,其他节点的答案还没有处理出来。,我们显然不能对每个节点设根做一遍 dfs,所以考虑换根 dp。不一定为质数,这意味着我们不能通过求逆元的方式来解决这个除法。考虑树形 dp,假设根左右子树的连通块已经算出来了,我们用。,但是总复杂度不变。空间上,因为子树根的个数为。是因为还要算上这个子树不取的情况。显然不能再算一遍,那我们只能想一个。子树的连通块方案数。,所以空间复杂度也为。

2023-07-25 18:25:32 45

原创 P2633 Count on a tree 题解(外加DFS序求LCA)

最近跟着洛谷榜一的博客学了一个冷门科技:DFS序求LCA,这道题刚好要求LCA,所以就刚好适用一下。原博客地址DFS序求LCA原理:我们令u点在dfs序中出现的位置为时间戳dfnu。设dfnudfnv。当u不是v的祖先时,设d为lcauv。观察到dfnddfnudfnv,与欧拉序的祖先在u,v之间出现过不同。但是我们找d在v方向的第一个节点v′,因为dfnudfnv,所以dfnv′属于[dfnudfnv。

2023-07-22 09:57:34 49

原创 一道简单题题解(含题意)

Code。

2023-07-22 09:57:01 51

原创 P2757 [国家集训队] 等差子序列 和小感悟

这篇题解的代码与大部分代码用的正反做哈希不太一样,是倒数组做哈希的,希望可以给跟我方法相似但是代码挂了的同学一点启发。

2023-07-22 09:55:35 31

原创 CF1806E Tree Master 题解

思路来源于题解:https://www.luogu.com.cn/problem/solution/CF1806E。总复杂度$ O(q\ sqrt n + n \sqrt n ) $,可过。次查询,假设每次都查层数多的,那因为层数少的记忆化了可以直接下传看作。,而层数少的查询全搜完也只有 $O(n \sqrt n) $然后上查过程中经过的层数多的只有$ \sqrt n$ 层。因为每一个查询都是同层的,我们可以只记忆层数少的(小于。),对于层数多的层,如果大于$ \sqrt n。\sqrt n$ ,一共有。

2023-07-21 19:29:04 74 1

原创 CF446C DZY Loves Fibonacci Numbers 题解

注:在处理pre[]数组的时候要注意略大于n(比如调成n+3),因为会访问到r+1,此时可能会爆。一开始的思路是每次存两个值,因为任意两个斐波那契数列合并之后仍然满足斐波那契的基本性质。但是发现这样子每次修改直接的总和得暴力递推求,复杂度爆炸。为了解决这个突破口,稍微借鉴了一下题解的斐波那契数列性质。我们发现,我们可以通过前缀和的方式求出整个区间中。负数的斐波那契数列可以用倒推的方式求得。是不变的,可以直接用懒标记下放。为其中一个位置,则需要在。的和,而每次修改过程中。

2023-07-21 19:28:18 35 1

原创 洛谷P4121 [WC2005] 双面棋盘 题解

修改值后只修改该行的值不能正解,原因大概是其他还有的地方指向之前未修改过的行,因此要在pushup里将有关的fa[]全修改掉(直接全局修改会超时)。并查集得开二维,但是如果直接开二维组存很麻烦而且容易出错,所以用了题解的一个小技巧,把二维压成一维,这样和一般的并查集没有什么区别。合并过程中,先将黑白的连通块数量相加作为合并后的连通块数量,再用并查集将颜色相同但是非同一个指向的并查集合并并减去一个连通块个数。给你一个n*n的只有黑白两种颜色的棋盘,每次修改把某格的黑白互换,求每次修改后黑白各自的连通块个数。

2023-07-21 19:26:52 33 1

原创 P6273 魔法 题解

原题链接。

2023-07-21 19:25:39 45 1

原创 CF1768E wonderful jump

【代码】CF1768E wonderful jump。

2023-07-21 19:24:10 33 1

原创 洛谷P6037 Ryoku的探索 题解

当我看见这道绿题的时候,一时没有任何思路(没有看懂作者让我们干什么),看过一些题解的题意分析的我还是不是很清楚(语文太差了),于是,通过对样例的分析,我终于看懂了,题意明白后代码还是好写的(自己模拟才是最靠谱的)。也就是说,所有和环上点连接的非环上点的答案都与环上点相同(都是在该环上点选择去掉一条边),于是解决本题的方法就出来了。减去该边的长度即为该环上点的答案,然后再去深搜遍历与该点相连的非环上点,将答案传递。的数据显然是不会让你过的,看着样例整齐的数据,我陷入了沉思。的优先级,我们显然是要选择走到。

2023-07-21 19:22:44 59 1

原创 洛谷P8482 Number 题解

首先我们肯定得使高位尽可能大,那么在高位都尽可能大的情况下,两个数的和基本相同的,我们用小学求周长相同,求最大矩形面积的方法,可以知道,当两数差最小时,乘积最大。数位不一样,那就哪个少给哪个。等方法都能合理构造,只不过作者太懒不想多写一个高精除。存在,也就是其中一个数一定可以被10整除。在我打算放弃之际,我看见了题面中我的救星。当两数数位相同且前几位相同时,为了保证。一定被放在了末位,那么我们只需要将有。前几位尽可能大,我们就将最大位给。根据上述原则,我们可以开始构造了。为前几位相对较小的数。

2023-07-21 19:21:02 39 1

原创 洛谷P8481 Binary search 题解

当时在考场上瑟瑟发抖的我第一时间想到能不能使用深搜,感觉复杂度很高(排除了正解),就暂时没有去打,而是被。满足该条件时,我们只需要按正常的二分去统计查询次数就好了,于是我得到了。是影响最终结果的决定性因素,而它的取值只可能是。就在我第三题迟迟构造不出来时,我想到回来打深搜了。直接讲,讲不清,那我们结合代码一起看吧。剩余部分就直接调用函数即可,但是要注意。最后看见一片绿的我才发现搜索是正解。如何取值使得总查询次数最少问题。,那么我们其实就只用去考虑当。那么问题来了,怎么搜?

2023-07-21 19:19:06 68 1

原创 SP19147 INS14F-Save CodeVillage题解

任意两个序列都有至少一个相同的元素,但相同的元素不必在相同的位置。保证每两个之间都要有相同的元素?我们先考虑一下nk×2的情况,此时如果你左边取一半,右边取一半,这时两边的元素才可能不一样。那么当nk×2时呢?此时你会发现不管怎么取,任意两条线段都会有重合的部分(即有相同的元素)。那么此时就很简单了,总方案数就是n个里面取k个乘以kCnk​×k!然后再是n≥k×2的情况,从n个里面取出k个不能保证有同样的元素。

2023-07-21 19:17:59 34 1

原创 洛谷P8453 美元巨大题解

关于洛谷题目的题解

2023-07-21 19:16:27 43 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除