![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
知识点
文章平均质量分 67
跑路的菜
这个人很菜,什么都没留下
展开
-
对象、抽象、封装、继承、多态
面向对象编程的一点基本概念原创 2022-09-01 20:11:04 · 875 阅读 · 0 评论 -
换根DP(入门)
换根DP换根 DPDPDP 又叫二次扫描与换根法,一般是给一颗不定根树,然后需要以每个节点为根经行一些列的统计。一般通过两次扫描来求解此类的问题:第一次扫描时,任选一个点为根,在有根的树上执行一次树形DP,自底向上转移。第二次扫描时,从第一次的根出发,对整颗树进行深度优先遍历,自顶向下推导,计算出换根后的解。题目:287. 积蓄程度题意:有一个树形水系,由 NNN 个交叉点和 N−1N-1N−1 条河道组成,河道可以看作树中的无向边,每条河道都有一个容量,连接 xxx 与 yyy 的河道的容原创 2022-05-21 11:08:24 · 584 阅读 · 0 评论 -
最长上升子序列(LIS)
最长上升子序列(LIS)参考博客数组中最长的单调递增子序列,LISLISLIS 有两种做法:①时间复杂度为 O(n2)O(n^2)O(n2) 的朴素 DPDPDP ,②时间复杂度为 O(nlogn)O(nlogn)O(nlogn) 的二分写法。做法一:设 dpidp_idpi 表示以 aia_iai 为结尾的单调递增子序列的长度,状态转移方程为 dpi=maxj<i,a[j]<a[i]dpj+1dp_i = \max_{j<i,a[j]<a[i]}{dp_j + 1}原创 2022-05-19 16:58:12 · 139 阅读 · 0 评论 -
莫队算法入门
参考博客:莫队算法-从入门到黑题,Luogu题解莫队算法:离线区间询问,先对数组进行分块,然后通过对查询区间的排序,再利用双指针移动确定区间,从而得出结果。O(nn)O(n\sqrt{n})O(nn)分块将长度为 nnn 的数组,分成每一段长为 n23n^{\frac{2}{3}}n32 的块,防止退化为 O(n2)O(n^2)O(n2) int t = pow(n,2.0/3.0); int size = ceil((double)n / t); for(int i=1;i<原创 2022-05-08 21:13:16 · 559 阅读 · 0 评论 -
带修改的莫队
参考博客:莫队算法-从入门到黑题带修改的莫队:离线修改区间查询,在原来的基础上再加上一个“时间戳”,而查询操作的时间戳沿用之前最近的修改操作的时间戳。跑主算法时定义当前时间戳为 time ,对于每个查询操作,如果当前时间戳相对太大了,说明已进行的修改操作比要求的多,就把之前改的改回来,反之往后改。只有当当前区间和查询区间左右端点、时间戳均重合时,才认定区间完全重合,此时的答案才是本次查询的最终答案。就是再弄一指针,在修改操作上跳来跳去,如果当前修改多了就改回来,改少了就改过去,直到次数恰当为止。这样,原创 2022-05-08 21:08:51 · 452 阅读 · 0 评论