自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剩余不多的ACM日记

虽然是第一次去,我还是装成很会的样子,直接走到自由区,拿起哑铃就是热身。结果发现重量都在大了,然后…就开始学周围的大佬做动作了,哈哈哈哈(去之前心想,不能学,绝对不能学。)一个小时就回来,接着做,发现环状舞会的题目还没有补掉,就给做完了。下午学习了一下独立集,基环树,以及他们的经典例题,基环树DP,其实就是环状舞会,还可以。新年第一训,看着倒数日上剩余不多的时间,决定写一写日记,留下点回忆。果然去健身房是比在家练效果更好,胸疼死了,敲键盘都快没劲了。哦,对了,今天三顿饭,餐餐吃煎饼,真是太好吃了!

2025-02-16 20:31:23 184 1

原创 JianBing 博客指南针

普通笔记CDQ分治+扫描线比赛上海月赛

2025-01-16 09:58:59 223

原创 数论基础【重修】

证明证明 gcdab×lcmaba×b证明。

2025-03-07 16:40:51 270

原创 DP——环形与后效性处理

不需要连续,那么我们的答案就是最优答案,所以现在我们只需要考虑二者连续的情况,而二者连续的情况我们只需要。转移也很简单,只需要考虑上一个是否连续即可。,每个物品的价值满足上述要求,求在使得背包容量恰好装满的最大值。可以做出贡献,并且最后的答案中必须最后一个位置选。因为需要考虑上一个位置是否选择,所以我们有。之间的环的时候,如果最优结果中第一和第。就可以了,如何强制选择呢,也就是。:我们发现,当我们断开第。,但是空间似乎有点爆炸,,用滚动数组优化就可以了。,可是发现时间复杂度在。一个十分暴力的想法就是。

2025-02-24 16:27:12 811

原创 树形DP(树形背包+换根DP)

通过题目可以知道,一条路径上的流量取决于最小流量边,所以这是一个维护最小值的问题。对于度数只为1的还需要特别注意,度数唯一不一定是叶子结点,也可能是根节点,当换根时,根节点变成叶子结点,我们先来想如果根节点固定的时候如何做,比较容易的DP,其实也就是递推,没有任何决策问题。我来思考,如果是在树中间换根怎么办,我们发现,父亲节点还需要同时加入父亲父亲的节点情况。节点就是根节点,不再是父亲节点的时候,此时的值刚好就是。家常便饭了,写了好几遍,没啥好说的,正常独立集问题。题面:见ACwing287。

2025-02-22 16:06:37 695

原创 区间DP(模板+蓝书例题)

所以我开始考虑子树的分布情况,然后我发现,将所有和顶点统计出来,然后组合数选择,然后在转移,根本不可能。一个区间DP进阶思想就是,区间DP本质上是像类似线段树类似的结构不断向上合并,这样就可以将区间DP和树进行联系,题目外表出关于树的题目,然后在联系上序列,这样就看着比较不可做,区间DP不容易想到,需要相对多的树和区间的知识。,但是如果写多了也不会出问题,因为多出来的情况也不会造成贡献,但是那样更不容易理解,也不严谨。,左侧的森林和右侧森林都可以求解,不过很快发现,这样算重,因此也就卡在这里…

2025-02-21 10:21:50 1027

原创 多重背包(二进制优化+单调队列优化)

但是我们的单调队列维护的就是这个最大值,但是现在当位置发生变换的时候,相同位置上的值发生改变了,这该如何办。我们发现,余数不同的之间不会相互影响,因此我们可以考虑分组进行转移。是不会影响单调性的,相当于没加,我们可以当成不操作,但是,有一个新数会加入到队列。,但是我们发现,对于相同位置,需要的状态转移表达式是不一样的。此时,我们为保证大小,就必须更改队列中的元素,使得他们都加。我们可以反过来看,我们需要比较的只是大小关系,我把。,因为我们队列中各村放的是每个转移的体积,的倍数,说明转移和被转移的体积对。

2025-02-20 09:13:57 778

原创 背包DP 呀

去统计了,结果发现很明显是错误的,当时就炸了,这可没办法跑DP,因此状态与状态之间不可以转移,每个状态的答案取决于当前差的和的绝对值大小,因为绝对值,最小值,最大值维护都是错误的,当时就没有办法解决绝对值,因此也就不做了。因为就在于:装满的求的是方案数,当一个物品装入后不能使当前背包变满,那么就不会得到转移,而对于求最值,即使当前背包不是变满,可是当前物品可以对答案做出贡献,重点在于方案数和最值。看了 y总的视频,写代码真快,确实帅,思路清晰,每行代码都是一句话。的数据,稍微更改一下题目就很显然的做了。

2025-02-19 15:43:50 340

原创 线型DP呀

这道题目是蓝书DP第一道题目,在ACwing上也显示是简单题,当时就像拿来练手,不过现在看来,这像是一道劝退题,难度评定有误。首先,题目特别绕口,简单地说就是数字要求从左到右依次增大,从上到下依次增大,并且从上到下满足数量依次减少。说到这里,起码可以感受到平常DP的思路:连续地推,说的再普通一点就是通过上一个位置转移(常规的线型DP),因为上面写到,发现一个性质是每行必须是连续的,同样的,每列也必须是连续的,因此才有这样的限制条件。,总满足当前状态下最大值,所以可以在边界所以放置,所以转移式子就出来了。

2025-02-17 16:02:59 975

原创 基环树与独立集

这里的错误是,在 dfs1 寻找树上环的时候,我对每个点的 fa 进行了赋值,然后在跑 dfs2 的时候直接就。在输出答案的时候,我们发现无法判断最后一个数和第一个数之间的关系,有可能存在二者都选的情况。点是当前除了其两条出边的“环上点”之外,他就是顶点,所以曾经的父亲节点是不对的。解决方式是看题解的:直接强制判断第一个选还是不选,那么最后答案就方便选择了。题目换句话说就是一个基环树,也可能是(基环森林),求解最大独立集。说说自己出现的问题,以及一些值得注意的地方。实际上,这是错误的,因为此时。

2025-02-16 16:02:26 1001

原创 2022年3月上海月赛

最为最后一位,因为只有这样,我们在状态转移的时候才能更加可以判断是否可以转移。总结:以后遇见升序类的DP问题,一定要抛开位置,从相对位置开始思考!向后移动对于当前第i个位置来说可能会超出i的范围,就导致后效作用。这种考虑是多余的,我们现在说DP是什么,再来说为什么多余。我就不会做了,期间想了DP,但是发现一个问题。可以说一开始一点思路都没有,连暴力都不会写。然后我就开始挖掘性质,首先可以显然的发现。个作为不动升序列的最小花费。大往后移动的花费,而不是下标。

2025-01-17 21:00:34 648

原创 2022年2月上海月赛

为了满足该条件,我们就会发现计算有两种,一种是最大值在右侧,一种是最大值在左侧,我们可以维护右侧最大值,然后找最后一个满足要求的左端点,剩下的部分就是最大值在左侧的情况,此时我们发现需要做的就是维护区该区间的最大值之和。扫描线的主要实现方式:对x轴进行离散化,用线段树维护x轴,维护的内容是区间最小值,已经最小值的个数,简单的将因该是维护 0 的个数,这样通过区间总数就可以直接得到区间中不为0的数量,通过枚举y轴的变化,来直接算出不为零的位置对面积所做出的贡献,这样看来就像是一条扫描线。

2025-01-16 15:46:15 817

原创 上海月赛乙组

2022年1月上海月赛乙组

2025-01-16 10:00:59 95

原创 CDQ分治+扫描线——(COGS577蝗灾,矩形面积的并)

首先 CDQ分治的重点是分治,实质是通过分治将多维偏序问题降维,直观体现比如,有修改和查询的操作,每次操作都保证前一半只取修改,后一半只取查询,然后进行计算,这样总能保证修改在查询前面,随着分治不断地进行,最终所有在当前查询点前的所有修改都会对其产生贡献,通过这两道题,我也很很难说出CDQ和扫描线的具体模板,代码上直观的感受是线段树和树状数组维护,思想上直观的看就是偏序问题降维,说人话就是多元问题,但从时间方面看是无序问题,通过这些方法实现降维问题,CDQ的时间降维,扫描线的x降维。

2025-01-16 09:49:07 899

原创 2022年1月上海月赛乙组

子序列,一点脾气都没有,不过可以提供一点方向,看到这种序列比较是否相同,就会非常麻烦,她不想字符串一样可以直接map直接比较去重,所以这让我放弃了暴力的思路,并且关系到计数问题,所以很自然的从DP和计数方面考虑,先考虑的计数,可是发现,不存在合并性,有考虑DP,结果发现我无法用状态完美描述当前的状态,并且没办法比较,说到底还是去重的问题。块,就必须移动一些,而无论往哪里移动,都不符合条件,以为无论和谁结合,都是超标的,因为分割的时候就是这么分割的,所以我们二分得到的答案就是最优结果。

2025-01-13 21:00:38 959

原创 【基础类】枚举

一个好问题:给定 nnn ,输出{1,2,3...n}\{1,2,3...n\}{1,2,3...n} 的所有子集的所有子集的总数(重复的重复算)结论是:3n3^n3n 个。直观上,因为数量为 nnn 的所有子集是 2n2^n2n 个,所以上述问题的计算公式为 20×Cn0+21×Cn1......+2n×Cnn2^0\times C_{n}^0+2^1\times C_{n}^1......+2^n\times C_{n}^n20×Cn0​+21×Cn1​......+2n×Cnn​其中 2n2^n2n

2024-10-31 22:33:00 1738

原创 基础类(枚举,贪心,分治,二分,搜索)

所以这个小tips,就可以让我知道 dfs 是否会超时,如果不知道,看到上面的式子,我就觉得爆搜肯定超时。但是显然,我不会这个和是多少,感觉非常大,经过手算发现,几个小数据都表明。的所有子集的所有子集的总数(重复的重复算)个子子集,这样长度的子集一共有。个,所以上述问题的计算公式为。表示长度为n的子集会有。,严谨的证明没找到。

2024-10-31 01:23:39 142

原创 欧拉筛进阶

通过这次学习欧拉筛进阶,我又进一步对欧拉筛加深了理解,消除了我对欧拉筛的一处误区。visprej×i1visprej×i1,在原欧拉筛中,无需任何判断,直接写,不需要考虑是不是第一个最小的。当时我在想,因为就算不是最小的第一个,因为之前就包含了一个,那么肯定这个数就已经被标记了,所以无所谓。但是实际上,这是一个新数,我有点想当然了,显然他没有被标记。用于晒去最小素因子个数1>11的合数。

2024-10-31 01:21:14 320

原创 洛谷 Fox and Card Game(博弈论)

这道题目自己没有做出来,思路上制作出来一半,但是后面的部分更重要自己大概率想不出来。没有用到SG函数。

2024-10-10 23:46:00 713

原创 浅谈SG函数

听说优快云给米就来了,不过作为一个品质优良的程序员来说,无私奉献是我应该做的,所以博主写的文章基本上不花钱,都是为了以后某天忘记了,自己能看懂才写的。so,我会写的很啰嗦,直到保证忘记的我能够看懂。对于读者嘛,能看就看吧,我就不管了。咱们一步一步来。

2024-10-09 23:24:48 1460

原创 【链表C】

为防止不够形象,自己以后会忘记,所以加一张图片。

2023-09-06 21:35:28 54 1

空空如也

空空如也

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

TA关注的人

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