- 博客(29)
- 收藏
- 关注
原创 T151892
本题的难点在于想到怎么去建模。其实图的结点不一定是每一个单独的点,其实结点是“状态”。有的时候状态只有一个,而有的时候多个数才能组成一个状态。
2023-01-11 20:03:42
150
1
原创 P3379 【模板】最近公共祖先(LCA)
最近公共祖先是一种求树上两点最近的共同祖先的算法。学习了通过倍增的方法来大幅度优化暴力LCA的时间复杂度。
2023-01-08 19:56:52
208
原创 P3389 【模板】高斯消元法
高斯消元是一个用来求类似k元一次方程组的算法。高斯消元是一个时间复杂度O(n^3)的算法,通过先一个一个消元变成阶梯矩阵在通过回带的方法求出未知数。
2023-01-08 19:44:35
105
原创 P2585 [ZJOI2006]三色二叉树
典型的树上dp。这个问题可以归纳为树上多情况dp,也就是每一个位置的状态不止有一个,而是有多个。比如这题是红蓝绿。
2023-01-06 08:03:55
228
原创 P2082 区间覆盖(加强版)
这种区间问题通常可以将l和r拆成两个在排序后做计算。当然如果你愿意的话可以无脑离散化+扫描线线段树去做(扫描线好像也需要前面那一步)。
2023-01-05 15:05:38
134
原创 P1809 过河问题
归纳了一种贪心方法——大小分配问题。这个问题的关键之处在于使用小的时间来节省大的时间的流动,通常可以在“大”达到目的之后的还原上节省。
2023-01-05 14:39:10
221
原创 P1944 最长括号匹配
一眼区间dp,实际线性dp在很多时候看着好像是区间dp,实际上是线性dp。我们在选择dp方式的时候可以根据数据范围来判断。10^6已经可以初步判断为线性dp了,2^n可能是状压dp,n^3大概是区间dp了。
2023-01-04 20:57:09
298
原创 P1220 关路灯
这个笔记就写一下这个题的类型吧,思路可以用这个跟我之前整理的区间合并类套路和区间多情况套路结合起来看。我把它叫做区间整体问题吧。
2023-01-03 20:57:06
124
原创 P4568 [JLOI2011] 飞行路线
分层图的难点在于如何建模,建模之后的做法当成一个图做就行了。分层图好像一个水管一样,每一次把能流的插一个水管让它可以留到下一层去。难点在于建模。
2023-01-03 20:53:11
136
原创 P3390 【模板】矩阵快速幂
矩阵感觉更多的是套路和规则,只要把套路总结出来题目都是那么几类。证明了矩阵的分配律和结合律,交换律是错的。主要证明了结合律。
2023-01-03 20:33:04
104
原创 P8925 「GMOI R1-T2」Light
为啥要在OI比赛中出物理捏。本题的难点在于不出错的模拟一遍样例和几个小一点的x,同时对数据进行归纳。
2023-01-01 21:31:05
91
原创 P1757 通天之分组背包
之前dp没学好,看背包的时候一愣一愣的,现在也慢慢变得清晰了。分组背包与01背包的不同就在于要去枚举每一个组,同时要确保组之间两两互不干扰。
2023-01-01 20:55:38
256
原创 P8927 「GMOI R1-T4」Rain
(大雾 一群神仙构造拆式子。我乱搞想骗分的贪心没有WA就离谱。顺便吐槽一下题意好难懂。我做题得跟用来判SPJ的checker.cpp一起看。通过了分析题面和大胆猜测的出了贪心的做法。同时在经过错误后的分析得出了正解。
2023-01-01 20:01:24
91
原创 P5663 [CSP-J2019] 加工零件
其实我感觉本题的难点在于分成奇偶两个不同的最短路来计算,图论和最短路其实不难想。同时可以根据暴力和输入数据的大小去推断可能的算法。在本题中我们通过暴力和LLL的范围推断出不太可能有在线的做法。
2022-12-27 19:08:37
383
原创 U192222匹配(北大附中新春公开赛2022T4)
话说没想到T4出了个模拟,(大雾 我觉得比赛难度应该是T1-T4-T3-T2吧,T4没有那么难。也可能是最近模拟做多了?同时知道了map的空间复杂度是存的东西的总大小,不要无视map的空间复杂度。
2022-12-26 21:37:33
307
原创 P7073 [CSP-J2020] 表达式
本题主要使用了数据结构表达式树。其实只要掌握了思路本题并不难,难的是考虑到怎么每次不去遍历更改整棵树而是通过一些预处理来使查询变快。表达式树,是将一个表达式的值转换成一颗二叉树。在表达式树上,叶子结点均为数字,其余的普通结点为运算符。一个表达式的中缀表达式对应着表达式树的中序遍历顺序,后缀表达式对应着表达式树的后序遍历顺序。前缀相同。使用后缀表达式十分方便的就可以建立表达式树。学习了表达式树的概念和构建方法。本题我们通过建了表达式树后又做了一次预处理使时间复杂度大幅降低。
2022-12-26 20:08:33
576
1
原创 U192221 决断(北大附中2022新春公开赛T3)
主要使用了贪心的思想,使用C++语言。本题的难点在于想到倒着推这一点。其次将这个看着复杂的问题化简也是一个难点。注意到只有0和b[i]最大。
2022-12-25 16:49:53
356
原创 P1441 砝码称重 + 状压dp思路
二进制,只有0与1,但是不光可以从数字上看,它也可以表示“有”与“没有”。比如本题,一个长度为4的序列,我们可以用1001来表示第一个没有了,第二,三个还留着,第四个也没有了。那么,本来一个很长的序列就可以转换成一个数字了——1001=9。状压dp通常适合长度较小,但是需要枚举所有状态的问题。
2022-12-25 14:22:05
178
原创 P3865 ST表
ST表,是一种用来处理RMQ(区间最值问题)的算法。ST表可以做到O(nlogn)预处理,之后O(1)查询, ST表的空间复杂度也是O(nlogn)的。
2022-12-25 14:21:00
85
原创 U142792移动箱子(北大附中2021新春公开赛T3)
通过模拟样例,我们大概可以初步想到,先搬空一列,之后每一个上方的空箱,就把它挪到这个空列中。仔细想想,如果把所有的空箱来回来回挪很明显是不如只挪一列。列箱子,其中有些是宝箱、其他是空箱。个栈,每次操作移动某个栈顶元素、或者删除某个位于栈顶的宝箱。首先做几次样例,可以发现本题好像可以使用贪心的思想。其余的列只需要挪走有意义部分的长度次就可以做到了。每一列只有到最底下的一个宝箱和它的上方是有意义的。请问如果想打开所有宝箱,最少需要的操作次数。
2022-12-25 14:18:54
129
原创 P3369普通平衡树
Treap是一种编程比较简单的平衡树,它在普通二叉搜索树的基础上,给每个结点一个随机的优先级。树上每个结点在满足BST的性质以外,还需要根据优先级满足堆的性质。
2022-12-25 14:13:00
163
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人