题意:给定一棵树,选择l条路径覆盖最多的点的个数是多少。 ($n \leq 1000000 $) 题解:首先根据数据范围,得知时间复杂度O($n$)。 满足一个贪心,即从叶子节点取最优,每次取路径最长的两个点。 用拓扑排序得到每个深度点数,显然这一层要么取 $ l \times 2 $ 个点,要么全 ...
分类:
其他好文 时间:
2018-12-23 15:19:00
阅读次数:
115
题意:给定一棵树,选择l条路径覆盖最多的点的个数是多少。 (n <= 1e6) 题解:首先根据数据范围,得知时间复杂度O(n)。 满足一个贪心,即从叶子节点取最优,每次取路径最长的两个点。 用拓扑排序得到每个深度点数,显然这一层要么取l*2个点,要么全部去完。 (好妙啊) 代码: ...
分类:
其他好文 时间:
2018-12-23 14:02:13
阅读次数:
135
字符串 KMP Fail 完了。 Suffix Automaton Right/Endpos Longest/Mx & Shortest/Mn 两个状态要么是包含关系,要么无交集。 求拓扑序等同于对 Mx 排序。 求 Right 集合大小:新加点时 ,拆出来的新点权值为零,拓扑排序之后 。 求 Ri ...
分类:
其他好文 时间:
2018-12-19 21:03:43
阅读次数:
112
"题目链接" 题目描述 给定一个数组a[N],N小于1e5。把数组划分成若干个片段,每个片段的和都不为0,问有多少种划分方法? 方法描述 定义f(i)表示0~i共有多少种划分方式,则$f(j)=\sum_{i\in[0,j) and sum(a[i+1:j])!=0} f(i)$ 相当于统计$f(j ...
分类:
其他好文 时间:
2018-12-16 11:03:57
阅读次数:
103
/*拓扑排序去寻找点的拓扑序 便于DP,那么怎么去找 首先邻接表存边,然后dfs搜寻每一个点 最后进行拓扑排序,找到拓扑序*/ #include const int maxn = 100005; const int maxm = 200005; using namespace std; int n,... ...
分类:
其他好文 时间:
2018-12-14 22:40:25
阅读次数:
259
大量图结构模板,可能会有帮助 #include<bits/stdc++.h>#define MAXN 100000#define D 10#define MAXM 10000010using std::cin;using std::cout;using std::endl;int m, n;//m为 ...
分类:
其他好文 时间:
2018-12-12 13:26:17
阅读次数:
143
题解: 注意到$ai$只有$1e6$这件事情肯定要枚举和这个有关的东西 考虑枚举$ai&aj$的值就可以了 那么这个集合一定是ai,aj的子集 于是我们对每个集合从大到小枚举丢掉一位转移就行了 这实际上放缩了条件但显然最大值不变 这题并不用用到高维前缀和。。但第一次听说于是学习了一下 ...
分类:
其他好文 时间:
2018-12-12 11:48:26
阅读次数:
167
知识点 拓扑排序 拓扑排序的+Leapms模型 无圈有向图 一个图G(V,E), 如果边有向且不存在回路,则为无圈有向图。在无圈有向图上可以定义拓扑排序。下图是一个无圈有向图的例子。 拓扑排序 给定一个无圈有向图G(V,E),对其顶点集合V中的元素进行排序,使得对任何两个顶点v1,v2,如果(v1, ...
分类:
编程语言 时间:
2018-12-03 17:53:15
阅读次数:
367
Long time no see. 拓扑排序 英文名称:Topological-sort 别称:toposort or topsort 拓扑排序是干什么的呢 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶 ...
分类:
其他好文 时间:
2018-12-02 12:29:29
阅读次数:
279