图论
你的目光看海
这个作者很懒,什么都没留下…
展开
-
对Dijkstra的一点点理解。
Dijkstra算法是图论中求单源最短路的一种算法,基本思想可以看啊哈算法,里面讲的比较详细。这里主要说一下我的一点心得,Dijkstra算法的实现由距离数组dis[len],标记数组book[len],和图的储存方式(邻接表or邻接矩阵组成)。Dijkstra可以求一个点到多个点的最短路,也可以求多个点到一个点的最短路。比如说有n个点,求点x到点n的最短路,初始化为(一对多,初始点只有一个,终点有原创 2016-07-23 22:07:44 · 373 阅读 · 0 评论 -
POJ 3268
这个是按着我上面的那篇关于Dijkstra算法的理解写的poj 3268的代码。#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> using namespace std; int tu[1100][1100],book[10原创 2016-07-24 09:44:38 · 489 阅读 · 0 评论 -
POJ 1511
#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> using namespace std; #define N 1000000+100 #define inf 1000000000+10 typedef long long原创 2016-07-25 11:24:33 · 346 阅读 · 0 评论 -
图的邻接表储存。
一个月前的河南省省赛有一道裸的最短路。 这个题需要用邻接表储存,但是我不会啊,所以GG了。回来后找了好多邻接表储存的方法。 有链式前项星,STL中的vector等等,但都感觉不好用,直到两天前,我发现了直接建立链表是那么的简单。想想也是本来就是邻接表储存,那就直接用邻接表写不就好了,其它的方法反而麻烦了。我现在有种众里寻她千百度,那人却在灯火阑珊处的感觉了==。 好了下面是代码。#include <原创 2016-07-03 22:40:16 · 725 阅读 · 0 评论 -
链式前项星建图
void addedge(int from , int t) { nxt[++tot] = ver[from]; to[tot] = t; ver[from] = tot; } for(int i = ver[o] ; i ; i = nxt[i]) { to[i] //便是与 o 相连的点 }原创 2016-12-11 17:06:07 · 476 阅读 · 0 评论 -
2017年华东师范大学网络赛 G
G. 铁路修复计划 Time limit per test: 2.0 seconds Time limit all tests: 15.0 seconds Memory limit: 256 megabytes Accept / Submit: 146 / 1219在 A 国有很多城际铁路。这些铁路都连接两个城市(城市从 1 到 n 编号),可以双向通行,使得任意两个城市之间都由铁路网联系起原创 2017-05-13 17:47:24 · 404 阅读 · 0 评论 -
LibreOj 6000 搭配飞行员
传送门分析:一道简单的网络流模板题,也可以用匈牙利算法写。代码:#include <bits/stdc++.h>using namespace std;const int maxn = 1e5;struct Edge { int v , to; int next; } edge[maxn]; int head[maxn] , cnt , n , m , from , to; void原创 2017-10-25 12:58:46 · 271 阅读 · 0 评论 -
LibreOj 6004 圆桌聚餐
传送门分析一道网络流的经典题,难点在于如何建图和如何输出。1.建图建立超级源点和超级汇点,源点连接单位,流量为单位的人数。餐桌连接源点,流量为餐桌可以容纳的人数。因为对每一个餐桌来说每一个公司只能做一个人,所以连接公司和餐桌,流量为一。2.判定有方案存在对图跑一遍最大流,如果到达汇点的流量等于所有公司的人数和,就说明所有人都找到了自己的座位,就是有方案存在的。3.输出方案我本来是在搜索增广路的时候对原创 2017-10-25 12:59:47 · 365 阅读 · 0 评论