图论
文章平均质量分 78
bubbleoooooo
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj3463Sightseeing(最短路条数+次短路条数)
//poj 3463 //次短路长度为最短路长度+1 //最短路条数+次短路条数 //分四种情况更新,练习了dijstra的更新 //路条数用加法原理更新 #include #include #include #include using namespace std; const int N=10100,M=100100; const int INF=0x3fffffff; #define clr原创 2015-07-27 17:18:36 · 519 阅读 · 0 评论 -
强连通分量总结
1主要写两个算法 1.1强连通分量之Korasaju 这个算法主要依赖的是图G与图G的转置强连通分量是一样的。 具体证明先不考虑了(既是强连通分量,正向可以到达,反向一定也可以到达)。 实现过程 1. dfs原图G,并且记录结束时间(后序)。后序越大,为相对的根节点。(先这样理解) 2. 给后序节点从大到小排序。 3. 依次取后序大的节点在G的转置图上进行dfs,跳原创 2014-08-02 22:31:23 · 3385 阅读 · 5 评论 -
codeforces543B. Destroying Roads(暴力枚举bfs)
//暴力枚举所有点为起点的最小值 //然后枚举每段是否为重叠区域。 //之前想枚举每一小段,发现很麻烦,其实重叠的区域肯定只有一段,因为如果有两段,那么这两段一定是由最短的路连接的,实际还是一段。 //所以枚举一大段即可 import java.io.*; import java.util.*; public class cf { FastScanner in; final in原创 2015-08-03 22:12:07 · 613 阅读 · 0 评论 -
poj3635 Full Tank?(spfa+dp)
//package project1; //可以先不用考虑加油 //只考虑到这个点剩余油量为j的最小花费 //那么我们可以按照最短路的方式来更新 //然后再在这个点统一加油 //一升一升的更新,因为j-1是最优的,用j-1更新的j也一定是最优的。 //因为要么不加油,要么加的油量肯定大于等于1升 //如果j-1不是最优,那么少加一升的适合肯定会更新的, import java.io.*; impo原创 2015-07-31 16:41:20 · 501 阅读 · 0 评论 -
图论之2-sat模板
#include #include #include #include #include #include using namespace std; int n; const int maxn=2011; struct Node{ int s,e; }Tim[2*maxn]; vectore[2*maxn]; vectore2[2*maxn]; vectorans; stackst;原创 2015-07-18 14:02:38 · 512 阅读 · 0 评论 -
图论之离线lca模板
#include #include #include #include using namespace std; #define MEM(a,b) memset(a,b,sizeof(a)); const int N=100010; int n,m; struct Edge{ int u,v,w,next; }edge[2*N],Q[N]; int fa[N],dis[N];原创 2015-07-18 14:05:51 · 472 阅读 · 0 评论 -
图论之树链剖分模板
#include #include #include #include using namespace std; #define MEM(a,b) memset(a,b,sizeof(a)); int n,m,s; const int maxn=100010; struct Node{ int u,v,w,next; }e[maxn],edge[2*maxn]; int cnt;原创 2015-07-18 14:08:05 · 478 阅读 · 0 评论 -
poj3621 最优比例生成环
//给出一个有向图,问求一个回路,使得回路上的点权之和/边权之和 最大 //01分数规划 //首先可以证明最优解一定是一个单独的环。 //设大环套小环最优,大环为花费x1,收益y1,小环为花费x2,收益y2,重叠部分花费x3,收益y3 //那么大环套小环花费x1+x2,收益y1+y2-y3,可以推出(y1+y2-y3)/(x1+x2)要么小于y1/x1,要么小于y2/x2 //则最优解一定是一个单原创 2015-07-28 17:01:08 · 507 阅读 · 0 评论 -
poj3613Cow Relays (经过n条边的最短路)
//poj 3613 //求经过n条边的最短路 //此题让我更深入的了解了最短路的floyed算法 //首先对于一个图的可达矩阵A而言(可达为1,不可达为0),A表示是否直接可达。 //A*A表示是否中间经过一个点k可达(因为是累加所有情况,只要有一个k可达,数字大于1,即为可达)。 //那么我们求的这个数字除了表示是否可达,有没有别的含义呢? //在矩阵乘法过程中,我们做的累加实际上就是加法原理原创 2015-07-27 22:29:32 · 1738 阅读 · 0 评论 -
poj2499 Remmarguts' Date 第K短路(spfa+A*)
//poj 2449第K短路 //spfa + A* #include #include #include #include using namespace std; const int N=10100,M=100100; const int INF=0x3fffffff; int cnt; struct Node{ int u,v,w,next; }edge[2*M]; int head原创 2015-07-27 15:56:54 · 490 阅读 · 0 评论 -
hdu 5348 MZL's endless loop(15多校第五场1006) 欧拉路
//15多校第五场1006 //hdu5348 MZL's endless loop //若图中都是偶点,那么一定符合条件 //若有奇点,我们的目标就是消除奇点。 //从奇点出发,终止于一个奇点变为偶点的位置 //奇点除去一条边变为偶点 //从奇点一直出发直到图中都是偶点,这样直接跑欧拉回路即可。 //要证明 //1.从奇点出发只会使奇点变成偶点,不会改变偶点 //2.从奇点出发一定会令图中原创 2015-08-05 20:44:05 · 558 阅读 · 0 评论
分享