![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
MorphLing_
GL,HF.
祝你好运,玩得开心。
展开
-
点分治专题
简介如果处理“所有经过某一个顶点的链对答案的贡献”的时间复杂度为O(n)O(n)O(n)或者O(nlogn)O(nlogn)O(nlogn),那么运用点分治的思想可以把问题规模降为O(nlogn)O(nlogn)O(nlogn)或O(nlog2n)O(nlog^2n)O(nlog2n),而非暴力枚举顶点计算答案的O(n2)O(n^2)O(n2)。所以说,点分治是一种在树上统计合法链个数的思想。显而易见的,对于当前顶点xxx,任意一条链要么经过xxx,要么不经过xxx。于是我们只需要计算那些经过xxx的链原创 2020-10-08 00:23:44 · 369 阅读 · 0 评论 -
2020牛客多校暑期训练营(第五、六场)
目录第五场D.Drop-VoicingB.Graph第六场快速清一下进度。。回头细补第五场D.Drop-Voicing算法标签:求LIS经过一些观察之后把问题转换成:“最少移动多少个数使得环有序”,也就是要找出原环的最长递增子序列(LIS)。打的时候因为n比较小直接O(n3)O(n^3)O(n3)过了,但是通过二分或者树状数组其实是可以压到O(n2logn)O(n^2logn)O(n2logn)的参考:最长上升子序列(LIS)的三种求法#include<bits/stdc++.h>原创 2020-07-28 02:30:58 · 228 阅读 · 0 评论 -
CDQ分治和多维偏序问题
尝试一下写个专题吧。目录1. CDQ分治介绍2. 逆序对问题3. 二维偏序问题4. 三维偏序问题1. CDQ分治介绍CDQ分治与其说是一种算法,不如说是一种思想。分治算法往往可以分成三步:分解:将原问题分为若干个子问题解决:递归处理分段后的子问题合并:通过子问题的解求出原问题的解在我看来,CDQ分治与一般的分治算法的区别关键在于合并这一步上,也就是merge操作。常见的分治算法(比如归并排序、线段树的merge操作等等)往往只关注合并后的结果,但CDQ分治则会同时关注结果和过程两方面,并原创 2020-07-09 01:31:41 · 509 阅读 · 0 评论 -
Codeforces Round #654 1371E2.Asterism (Hard Version)
题目描述:E2. Asterism (Hard Version)time limit per test 1 secondmemory limit per test 256 megabytesThis is the hard version of the problem. The difference between versions is the constraints on n and ai. You can make hacks only if all versions of the probl原创 2020-07-04 00:37:54 · 315 阅读 · 0 评论