![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Graph图论
文章平均质量分 54
普通网友
这个作者很懒,什么都没留下…
展开
-
SGU 219 Synchrograph tarjian找环,理解题意,图论 难度:3
原文链接:Synchrograph 题目大意:如果指向某个点的边权全都为正数,那么这个点就是可点燃的,点燃操作把入弧权值-1,出弧权值都+1,如果在某种点燃序列之后还可以再点燃一些点使得这个点还可以点燃,那么这个点在这种点燃序列之后存活如果在任何点燃序列之后都还可以再点燃一些点使得这个点还可以点燃,那么这个点可存活现在求所有点是否可存活思路:考虑不可存活的点:对于某个状态,对于不可存活的点,要想使转载 2016-09-28 20:28:25 · 577 阅读 · 0 评论 -
POJ 1258生成树模板题
(题解来自北大2016 ACM/ICPC竞赛训练暑期课讲义) 题目链接:http://poj.org/problem?id=1258 题意:输入图的邻接矩阵,求最小生成树的总权值 (多组数据) 输入样例: 4 0 4 9 21 4 0 8 17 9 8 0 16 21 17 16 0 输出样例: 28prioirty_queue实现 Prim + 堆 #include<iostr原创 2016-09-02 09:55:43 · 263 阅读 · 0 评论 -
POJ 1258的Kruskal做法
Kruskal算法伪代码:KRUSKAL-FUNCTION(G, w)1 F := 空集合2 for each 图 G 中的顶点 v3 do 將 v 加入森林 F4 所有的边(u, v) ∈ E依权重 w 递增排序5 for each 边(u, v) ∈ E6 do if u 和 v 不在同一棵子树7 then原创 2016-09-02 10:57:38 · 234 阅读 · 0 评论 -
POJ 1273 网络流基础题
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 70082 Accepted: 27205 DescriptionEvery time it rains on Farmer John’s fields, a pond forms over Bessie’s favor原创 2016-09-08 19:53:28 · 310 阅读 · 0 评论 -
POJ 1273&Dinic解决
题目链接 http://poj.org/problem?id=1273#include<iostream>using namespace std;#include<queue>#include<vector>#include<cstring>#include<algorithm>#include<deque>#define INFINITE 0x7fffffint G[300][30原创 2016-09-08 19:55:25 · 347 阅读 · 0 评论 -
POJ 3259_Bellman Ford_判断是否含负权环
Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 44853 Accepted: 16530 DescriptionWhile exploring his many farms, Farmer John has discovered a number of amazing wormh原创 2016-09-09 10:02:56 · 364 阅读 · 0 评论 -
POJ 3259_SPFA_判断是否含负权环
题目链接:http://poj.org/problem?id=3259#include<iostream>using namespace std;#include<vector>#include<queue>#include<algorithm>#include<cstring>int F,N,M,W;const int INF=1<<30;struct Edge{ int原创 2016-09-09 11:07:11 · 288 阅读 · 0 评论 -
HDU 5869(Problem 1002)GCD+树状数组
题意:长度n的序列, m个询问区间[L, R], 问区间内的所有子段的不同GCD值有多少种.题解:考虑固定左端点的不同GCD值,只有不超过logA种, 所以事件点只有nlogA个. 那么离散化处理, 按照区间右端点排序从小到大处理询问,用一个树状数组维护每个GCD值的最大左端点位置即可. 复杂度是O(nlogAlogn).这份题解里有两个难点:1、如何快速的离散化处理出固定的左端点的gcd;2转载 2016-09-13 10:01:52 · 426 阅读 · 0 评论 -
HDU 5877(Problem 1010) (DFS+树状数组+离散化)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5877题意:给定一颗树,然后对于每一个节点,找到它的任何一个祖先u,如果num[u] * num[v] <= k。则贡献加1题解:dfs搜索一遍树结构,树状数组记录路径上的数信息,由于数太大,所以需要离散化一下#include <cstdio>#include <iostream>#inc转载 2016-09-13 20:40:29 · 346 阅读 · 0 评论 -
Dijkstra 算法
原文链接:http://www.cnblogs.com/pengyingh/articles/2396421.html 一、Dijkstra 算法的介绍Dijkstra 算法,又叫迪科斯彻算法(Dijkstra), 算法解决的是有向图中单个源点到其他顶点的最短路径问题。 举例来说, 如果图中的顶点表示城市,而边上的权重表示著城市间开车行经的距离, Dijkstra 算法可以用来找到两个城市转载 2016-09-17 09:32:20 · 530 阅读 · 0 评论 -
有向图强连通分支的Tarjan算法
做一遍DFS,用dfn[i]表示编号为i的节点在DFS过程中 的访问序号(也可以叫做开始时间)。在DFS过程中会形成 一搜索树。在搜索树上越先遍历到的节点,显然dfn的值就 越小。dfn值越小的节点,就称为越“早” 。 ◦ 用low[i]表示从i节点出发DFS过程中i下方节点(开始时 间大于dfn[i],且由i可达的节点)所能到达的最早的节点的 开始时间。初始时low[i]=dfn[i原创 2016-09-27 21:41:47 · 473 阅读 · 0 评论 -
hdu 1213 求连通分支个数
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1213对这个问题抽象之后,就是要求进行若干次union操作之后,还会剩下多少颗树(或者说还剩下多少Connected Components)。反映到这个例子中,就是要求有多少“圈子”。其实,这也是社交网络中的最基本的功能,每次系统向你推荐的那些好友一般而言,会跟你在一个“圈子”里面,原创 2016-08-26 17:14:55 · 1167 阅读 · 0 评论