![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【图论】
文章平均质量分 79
欧拉士大夫
在校期间是渣渣ACMer,现在是一名FPGAer/ICer。热爱新技术。
展开
-
【网络流最大流】poj3281Dining
/*EK算法版本的,比较慢哦。。。。。详见下面dinic版本-----------------------------------------题目是网络流最大流的问题----------------------------------------建图:关键:拆点把每个牛拆成两个点,牛作为一个点有流量限制,即每一头牛只能的一份饭。把牛拆开后,将边的权值赋值为1,----------原创 2014-08-04 21:50:13 · 671 阅读 · 0 评论 -
uva 10397 Connect the Campus(kruskal并查集)
题目: 链接:点击打开链接题意: 部分建筑已经被电缆连接,问还需要多长的电缆才能全部连起来。思路: 初始时,把连接的建筑之间的dis[]设为0,然后Kruskal就好。代码:#include #include #include #include #include using namespace std;const原创 2014-06-30 19:22:05 · 386 阅读 · 0 评论 -
hdu 1532 Drainage Ditches(最大流)
题目: 链接:点击打开链接题意: 求最大流速。思路: Edmond_karp就行。代码:#include #include #include #include using namespace std;#define INF 100000000const int N = 220;int cap[N][N],flo原创 2014-06-30 19:21:38 · 437 阅读 · 0 评论 -
hdu 1546 Idiomatic Phrases Game (最短路)
题目: 链接:点击打开链接题意:思路: 把字典转换为图后就好办了,dijkstra()。代码:#include #include #include using namespace std;#define INF 100000000int map[1005][1005];char dic[1005][1000];int w[1005原创 2014-06-30 17:58:57 · 322 阅读 · 0 评论 -
hdu 2066 一个人的旅行(最短路)
题目: 链接:点击打开链接题意:思路: 对每个起点调用dij算法后,每个终点的最短路长度都已经出来了。对于每个起点,从这些终点的最短路中选出最最短路就可以了。 然后在比较每个终点,即求得最小值。代码:#include #include #include using namespace std;#define INF 1000000原创 2014-06-30 17:56:22 · 349 阅读 · 0 评论 -
hdu 2544 最短路 (最短路)
题目: 链接:点击打开链接题意:思路:原创 2014-06-30 17:56:31 · 334 阅读 · 0 评论 -
hdu 1548 A strange lift(最短路或DFS)
题目: 链接:点击打开链接题意:思路: 这也是最短路径的问题,与以往的最短路径有所不同,开始时一看是让求步数,以为是搜索题,就用广搜做,也运行对了,但是提交不上,说的是使用内存超出限制,所以得用其他法,这题首先要做的是把在某一层向上向下能一步到达的层数用数组对应起来,然后就是dijkstra算法求最短路径了。代码:#include #inclu原创 2014-06-30 17:55:20 · 365 阅读 · 0 评论 -
uva
题目:阿斯顿发顺丰俺的沙发原创 2014-06-30 23:57:03 · 341 阅读 · 0 评论 -
hdu 1535 Invitation Cards(有向图的来回最短路,要反向建图)
题目: 链接:点击打开链接题意: 给一个图,求1到各点和各点到1最短路。思路: 先spfa,然后反向建图,在spfa就行了。代码:#include #include #include #include using namespace std;#define INF 100000000const int N = 10原创 2014-06-30 19:20:30 · 892 阅读 · 0 评论 -
hdu 1596 find the safest road(乘积最短路)
题目: 链接:点击打开链接题意:思路: 对dijkstra稍作修改即可,每次更新dis[]时改为乘积。代码:#include #include #include using namespace std;#define INF 100000000const int N = 1010;int n,m;double map[N][N]原创 2014-06-30 19:20:08 · 556 阅读 · 0 评论 -
hdu 2586 How far away ?(LCA:最近公共祖先)
题目: 链接:点击打开链接题意: 思路: 代码:#include #include #include using namespace std;const int N = 40040;const int M = 220;struct node{ int from; int to; int n原创 2014-06-30 17:55:11 · 338 阅读 · 0 评论 -
hdu 3790 最短路径问题(最短路)
题目: 链接:点击打开链接题意:思路: dijjkstra算法。单源最短路径,更新路径的同时要更新花费。代码:#include #include #include using namespace std;#define INF 10000000const int N = 1010;int n,m,a,b,d,c;int s,t;原创 2014-06-30 17:56:00 · 364 阅读 · 0 评论 -
hdu 1879 继续畅通工程
题目: 链接:点击打开链接题意: 中文算法: 最小生成树思路:代码:#include#include#includeusing namespace std;#define MAXN 110#define MAX 100000000int map[MAXN][MAXN];int low[MAXN];int v原创 2014-05-27 22:19:27 · 475 阅读 · 0 评论 -
hdu 1102 Constructing Roads
题目: 链接:点击打开链接题意: 求需要修建的公路的最短长度。算法:思路: prim最小生成树代码:#include#include#includeusing namespace std;#define MAX 100000000#define MAXN 110int map[MAXN][MAXN];int原创 2014-05-28 14:58:50 · 441 阅读 · 0 评论 -
【网络流-二分图最大匹配】poj3041Asteroids
/*这道题将每行x看成是结点x,没列y看成是结点y,而障碍物的坐标xy看成是从x到y的一条边。建图后问题就变成了,找最少的点,使得这些点与所有的边相邻,即最小点覆盖,用匈牙利算法解决。-------------------------------定理:最小点覆盖数 = 最大匹配数,即求图的最大匹配即可,匈牙利算法-------------------------------模板讲解:原创 2014-08-04 19:40:13 · 743 阅读 · 0 评论 -
【网络流】hdu 1569 方格取数(2)
/*和1565一样:总点数的权 - 最小覆盖点集 = 最大独立集--------------------------------------void add(int u, int v, int f)加边{ e[ct].u = u; e[ct].v = v; e[ct].f = f; next[ct] = first[u]; first[u] = c原创 2014-08-03 22:43:35 · 618 阅读 · 0 评论 -
hdu 1162 Eddy's picture(基础最小生成树)
题目: 连接:点击打开链接题意: n个点,是每个点相互连通(直接间接),求最短距离。思路: prim()最小生成树。把点的距离存在map中。代码:#include#include#include#includeusing namespace std;#define MAXN 110#define MAX 100000原创 2014-06-02 16:01:03 · 648 阅读 · 0 评论 -
反思1
发大水发原创 2014-07-01 00:00:06 · 352 阅读 · 0 评论 -
hdu 2489 Minimal Ratio Tree(dfs枚举 + 最小生成树)~~~
题目: 链接:点击打开链接题意: 输入n个点,要求选m个点满足连接m个点的m-1条边权值和sum与点的权值和ans最小,即sum/ans最小,并输出所选的m个点,如果有多种情况就选第一个点最小的,如果第一个点也相同就选第二个点最小的........求一个图中的一颗子树,使得Sum(edge weight)/Sum(point weight)最小~数据原创 2014-06-12 09:48:47 · 581 阅读 · 0 评论 -
hdu 1829 A Bug's Life (基础并查集)
题目: 链接:点击打开链接题意:思路:题目大意:Hopper教授正在研究一种稀有虫子的交配行为。他假设它们有两种性别并且它们只与异性交配。在他的实验中,很容易识别虫子和它们的交配行为,因为虫子背后印有编号。问题给定一组虫子的交配行为,确定实验是支持教授的假设即虫子没有同性恋,还是有部分交配行为不符合假设。 这道题实际上还是并查集,和以往不同的是。以往给原创 2014-06-12 09:43:58 · 572 阅读 · 0 评论 -
最小生成树学习
概述: 在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边(即),而 w(u, v) 代表此边的权重,若存在 T 为 E 的子集(即)且为无循环图,使得 w(T) 最小,则此 T 为 G 的最小生成树。 最小生成树其实是最小权重生成树的简称。最小生成树: 一个无向连通图G=(V,E)原创 2014-05-24 16:03:35 · 709 阅读 · 0 评论 -
hdu 1875 畅通工程再续
题目: 链接:点击打开链接题意: 中文算法: 最小生成树的prim算法。思路: 对map数组按条件初始化即可,用一个标记变量判断能否实现全部畅通即可。代码:#include#include#include#includeusing namespace std;#define MAX 1000000原创 2014-05-27 21:59:06 · 463 阅读 · 0 评论 -
uva 10099 The Tourist Guide(单源最短路/spfa/dijkstra)
题目: 链接:原创 2014-06-30 23:51:07 · 494 阅读 · 0 评论 -
hdu 1811 Rank of Tetris (并查集 + 拓扑排序)
题目: 链接:点击打开链接原创 2014-06-30 17:49:05 · 336 阅读 · 0 评论 -
hdu 3635 Dragon Balls (带权并查集)
题目: 链接:点击打开链接题意: 把编号为1~n的龙珠放到编号为1~n的城市中去。现在有T和Q两种操作: T:A B 把A龙珠所在城市的所有龙珠转移到B城市中。 Q:A 表示查询A龙珠的一些信息:X(A所在的城市),Y(A所在城市龙珠的数目),Z(A转移到该城市被移动的次数)。思路: 代码:#原创 2014-06-30 17:51:55 · 419 阅读 · 0 评论 -
uva 10986
题目:a撒旦法阿飞阿斯顿发暗室逢灯暗室逢灯原创 2014-06-30 23:57:32 · 334 阅读 · 0 评论 -
hdu 1869 六度分离(floyd最短路)
题目: 链接:点击打开链接题意:思路: Floyd求最少联系人,然后判断是否大于7即可。代码:#include #include #include using namespace std;#define INF 100000000const int N = 110;int n,m;int map[N][N];bool flo原创 2014-06-30 18:00:19 · 375 阅读 · 0 评论 -
hdu 1217 Arbitrage(Floyd最短路算法+map应用)
题目: 链接:点击打开链接题意: 给出几种货币和各货币之间的兑换率,如果1钱货币通过多次兑换后大于1,就输出yes,不然输出no。思路: Floyd算法的公式简单变形+map的简单应用。代码:#include #include #include #include #include #include using nam原创 2014-06-30 17:58:16 · 370 阅读 · 0 评论 -
hdu 1874 畅通工程续(最短路)
题目: 链接:点击打开链接题意:思路: dijkstra模板就好。。代码:#include #include #include using namespace std;#define INF 100000000const int N = 220;const int M = 1010;int n,m;int a,b,c;int原创 2014-06-30 17:56:38 · 321 阅读 · 0 评论 -
hdu 3047 Zjnu Stadium (带权并查集)
题目: 链接:点击打开链接题意: 思路: 冲突的条件是:两个人坐在同一行,同时他们到根节点的差值等于他们之间的差值,这时就产生冲突了。于是我们可以用一个dist数组来保存节点到根的距离,而这个距离在路径压缩的时候更新一下就可以了,dist[x]+=dist[parent[x]]。然后就是合并后的距离,令r1=Find(u),r2=Fin原创 2014-06-30 17:52:35 · 460 阅读 · 0 评论 -
hdu 3938 Portal(离线并查集)
题目: 链接:点击打开链接提议原创 2014-06-30 17:50:04 · 324 阅读 · 0 评论 -
hdu 1198 Farm Irrigation(并查集)
题目: 链接:原创 2014-06-03 21:32:35 · 605 阅读 · 0 评论 -
hdu 1856 More is better
题目: 链接:点击打开链接题意: 给出n个直接认识的朋友,最大的直接或间接认识的朋友。思路:算法: 并查集,,,代码:#include#include#includeusing namespace std;#define MAXN 100010int root[MAXN];int member[MAXN];//表示在i结点处的,认识的原创 2014-05-21 00:44:45 · 562 阅读 · 0 评论 -
hdu 1301 Jungle Roads (基础最小生成树)
题目: 链接:点击打开链接题意: 对n个村庄之间的路进行修理, 然后是n-1行,每行的第一组数据时一个大写字母VIL和一个数K,Vil表示从这个村庄出发,K表示刚才的那个字母代表的村庄和其他村庄的路的数目,接下来在同一行是K组数据,每组是一个大写字母和一个数,大写字母表示和第一个村庄连接的村庄,数表示维修他们之间的路所需的费用。现在为了使维修费油最低,只需所原创 2014-06-02 11:32:14 · 687 阅读 · 0 评论 -
hdu 1213 How Many Tables(并查集学习)
题目: 链接:点击打开链接题意: 有n个朋友,编号为1......n。知道其中一些人相互认识,求最少需要多少桌子。算法: 并查集算法的模板题。 (来源:LCY-teacher课件) >>在某个城市里住着n个人,现在给定关于 n个人的m条信息(即某2个人认识)假设所有认识的人一定属于同一个单位,请计算该城市最多有多少单位? >>如何实现原创 2014-05-18 22:11:25 · 953 阅读 · 0 评论 -
hdu 1272 小希的迷宫
题目: 链接:点击打开链接题意:思路: 一个并查集,题目就是要让你判断是否是一个连通的无环图。1>判断成环的时候,只要判断输入边的两个点。有一个共同的父节点,那么这两个点就成环。2>判断连通的时候,只要判断根节点数为1即可。注意:当输入的这组数据只有 0 0 时,依然是满足,即应输出 "Yes"。代码:#include#include#include#原创 2014-05-20 13:40:00 · 597 阅读 · 0 评论 -
hdu 1317 XYZZY(bellman_ford判断环,有负权)
题目: 链接:点击打开链接题意: 出发点1能量值为100,到达一个新的房间会得到一个+或-能量值,能否到终点。思路: 用bellman_ford判断是否有环,如果存在环且能量值是大于0的,那么winnnable。如果起点1孤立,必然hopeless。代码:#include #include #include using n原创 2014-06-30 17:58:43 · 384 阅读 · 0 评论 -
uva Risk(Floyd求最短路)
题目: 链接:点击打开链接题意: 前19行中的第i行,给出i与n个城市连通的,然后同一行是这n个城市的序号。最后给出两个点,求 最短路。思路: Floyd求出每两个点之间的最短路。代码:#include #include #include #include using namespace std;#define INF原创 2014-06-30 19:21:48 · 361 阅读 · 0 评论 -
hdu 3926 Hand in Hand (同构图)
题目: 链接:点击打开链接题意: 给两个图判断是否为同构图,是输出yes,不是输出no。思路: 每个节点的最大度数为2,说明该图可能有多个连通分量,为环或链,遍历每个连通分量,记录该连通分量的结点个数以及他是环还是链。每个图按结点的个数排序,若子结点个数相等,则链先。排序后,比较两个图的是否每个元素都相等,如果相等则为同构原创 2014-06-10 15:17:45 · 643 阅读 · 0 评论 -
uva萨芬
发生的发生发顺丰阿三发大水发达原创 2014-06-30 23:58:09 · 390 阅读 · 0 评论