- 博客(8)
- 收藏
- 关注
原创 tarjan算法题目练习(长期更新)
P2002 消息扩散题目描述有n个城市,中间有单向道路连接,消息会沿着道路扩散,现在给出n个城市及其之间的道路,问至少需要在几个城市发布消息才能让这所有n个城市都得到消息。tarjan缩点(因为一个强连通分量内的点只要又一个传到了其他点都传到了,所以可以缩成一个点),然后重新建图,统计out[i]为0的点的数量#include <iostream>#include <a...
2019-09-26 18:17:22 546
原创 【算法学习】 tarjan算法以及图论的一些应用(强连通分量/割点/桥/缩点)
学习了tarjan算法,觉得这个算法真的是挺强大的,然而蒟蒻并不会用 ,先学习着写一篇博客作为记录。学习tarjan的点觉得主要在于两个数组的理解—— dfn,lowdfn,lowdfn,low数组dfndfndfn数组,用于记录dfsdfsdfs序,也就是这个点最早什么时候被dfs搜索到。lowlowlow数组,用于记录其及其子树中的点能回溯到的点的最小dfsdfsdfs序这两个数组引出...
2019-09-25 18:12:50 218
原创 后缀数组
#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>using namespace std;const int maxn = 1e5+5;class SuffixArray{ char str[maxn]; // 储存字符串 int n,m...
2019-09-11 15:47:47 69
原创 [DAG算法] 拓扑排序
有向无环图 DAG(directed acycline graph)相比较无向图来说,有向图比较特殊。看这幅图,所有的边都带上了方向,也就是说 从节点1可以到节点2,但是节点2不能通过那条边到达节点1一般来说,有向无环图可以用来作为表示流程图的一种工具(想想流程图,是不是也是从一个任务到另一个任务或多个任务)于是判断一个流程图是不是很够顺利进行,就有了拓扑排序。...
2019-09-11 14:46:31 2896 1
原创 最短路问题专题(Luogu训练场及各种总结)
P1462 通往奥格瑞玛的道路题目:找最短路径中点权的最大值的最小值最大值的最小值,最小值的最大值,一般这种题目都会想到二分答案去解决。所以我们先把所有点权排个序(二分需满足有序性),然后二分点权,跑一遍最短路确认该方案是否可行(走的路径时,边权损失的HP要尽量的小,这样才可能到达最终的点...
2019-09-10 12:37:26 326
原创 树状数组/分治求逆序对
#include <iostream>#include <algorithm>#include <vector>using namespace std;const int maxn = 1e5+5;struct data{ int val,id; bool operator <(const data &h)const{ retur...
2019-09-10 12:36:57 116
原创 Codeforces Round #569 (Div. 2)
A. Alex and a Rhombus(找规律水题)这题…找一下规律就很容易得到 f(1) = 1,f(n) = f(n-1) + 4*(n-1),先打表,然后直接输出即可#include <iostream>using namespace std;typedef long long ll;int f[105];int main(){ f[1] = 1; for...
2019-09-05 13:18:03 122
原创 Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises)
A. Optimal Currency Exchange就是汇率问题,不难发现,我们其实只要换dollardollardollar或euroeuroeuro的最小面值即可,也就是1,和5,其他面值可以通过这两个比例得到,所以问题就简化了。于是暴力即可#include <iostream>using namespace std;int main(){ int n; ...
2019-09-05 13:11:29 237
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人