
【图论】
文章平均质量分 79
欧拉士大夫
在校期间是渣渣ACMer,现在是一名FPGAer/ICer。热爱新技术。
展开
-
【网络流最大流】poj3281Dining
/*EK算法版本的,比较慢哦。。。。。详见下面dinic版本-----------------------------------------题目是网络流最大流的问题----------------------------------------建图:关键:拆点把每个牛拆成两个点,牛作为一个点有流量限制,即每一头牛只能的一份饭。把牛拆开后,将边的权值赋值为1,----------原创 2014-08-04 21:50:13 · 717 阅读 · 0 评论 -
【网络流-二分图最大匹配】poj3041Asteroids
/*这道题将每行x看成是结点x,没列y看成是结点y,而障碍物的坐标xy看成是从x到y的一条边。建图后问题就变成了,找最少的点,使得这些点与所有的边相邻,即最小点覆盖,用匈牙利算法解决。-------------------------------定理:最小点覆盖数 = 最大匹配数,即求图的最大匹配即可,匈牙利算法-------------------------------模板讲解:原创 2014-08-04 19:40:13 · 787 阅读 · 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 · 658 阅读 · 0 评论 -
反思1
发大水发原创 2014-07-01 00:00:06 · 387 阅读 · 0 评论 -
阿斯顿发沙发大三房
阿斯顿发沙发大三房大厦阿双方打算法阿双方打算原创 2014-06-30 23:59:08 · 533 阅读 · 1 评论 -
uva萨芬
发生的发生发顺丰阿三发大水发达原创 2014-06-30 23:58:09 · 435 阅读 · 0 评论 -
uva 10986
题目:a撒旦法阿飞阿斯顿发暗室逢灯暗室逢灯原创 2014-06-30 23:57:32 · 370 阅读 · 0 评论 -
uva
题目:阿斯顿发顺丰俺的沙发原创 2014-06-30 23:57:03 · 380 阅读 · 0 评论 -
uva 10099 The Tourist Guide(单源最短路/spfa/dijkstra)
题目: 链接:原创 2014-06-30 23:51:07 · 527 阅读 · 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 · 423 阅读 · 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 · 390 阅读 · 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 · 469 阅读 · 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 · 936 阅读 · 0 评论 -
hdu 1690 Bus System(最短路)
问题: 链接:点击打开链接题意:思路:代码:#include #include #include using namespace std;#define INF 1000000000000typedef __int64 LL;const int N = 110;__int64 dis[N][N],place[N];__int64 L1,L2,L原创 2014-06-30 19:20:20 · 452 阅读 · 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 · 591 阅读 · 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 · 403 阅读 · 0 评论 -
hdu 1599 find the mincost route(floyd求无向图的最小环)
题目: 链接:点击打开链接题意:思路:代码:#include #include #include using namespace std;#define INF 100000000const int N = 110;int n,m;int map[N][N],dis[N][N];int result;void floyd(){ f原创 2014-06-30 18:00:07 · 375 阅读 · 0 评论 -
hdu 3339 In Action(最短路+01背包)
题目: 链接点击打开链接题意: 有N个发电站和M条路,给出每两条路之间的耗油量,then,N行代表发电站的能量。求最小耗油量,只有控制超过总能量的一半,才能成功,否则impossible。思路: 求最少的耗油量,明显是最短路问题,然后,要求控制的电量要超过一半用01背包解决:V是总电量一半+1,dijkstra求得的dis[]是价值,每原创 2014-06-30 17:59:54 · 377 阅读 · 0 评论 -
hdu 2680 Choose the best route(最短路)
题目: 链接:原创 2014-06-30 17:59:34 · 402 阅读 · 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 · 348 阅读 · 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 · 431 阅读 · 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 · 401 阅读 · 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 · 344 阅读 · 0 评论 -
hdu 2544 最短路 (最短路)
题目: 链接:点击打开链接题意:思路:原创 2014-06-30 17:56:31 · 368 阅读 · 0 评论 -
hdu 2066 一个人的旅行(最短路)
题目: 链接:点击打开链接题意:思路: 对每个起点调用dij算法后,每个终点的最短路长度都已经出来了。对于每个起点,从这些终点的最短路中选出最最短路就可以了。 然后在比较每个终点,即求得最小值。代码:#include #include #include using namespace std;#define INF 1000000原创 2014-06-30 17:56:22 · 378 阅读 · 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 · 398 阅读 · 0 评论 -
hdu 1548 A strange lift(最短路或DFS)
题目: 链接:点击打开链接题意:思路: 这也是最短路径的问题,与以往的最短路径有所不同,开始时一看是让求步数,以为是搜索题,就用广搜做,也运行对了,但是提交不上,说的是使用内存超出限制,所以得用其他法,这题首先要做的是把在某一层向上向下能一步到达的层数用数组对应起来,然后就是dijkstra算法求最短路径了。代码:#include #inclu原创 2014-06-30 17:55:20 · 402 阅读 · 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 · 365 阅读 · 0 评论 -
hdu 4009 Transfer water(最小树形图:有向图的最小生成树模板)
题目: lianjie原创 2014-06-30 17:53:40 · 656 阅读 · 0 评论 -
hdu 2818 Building Block(带权并查集)
题目: 链接:题意:思路:代码:#include #include #include using namespace std;const int N = 30030;int root[N];int sum[N],rank[N];//sum[i]表示i下面的积木个数int q;int findset(int x){ if(x == r原创 2014-06-30 17:53:22 · 438 阅读 · 0 评论 -
hdu 3047 Zjnu Stadium (带权并查集)
题目: 链接:点击打开链接题意: 思路: 冲突的条件是:两个人坐在同一行,同时他们到根节点的差值等于他们之间的差值,这时就产生冲突了。于是我们可以用一个dist数组来保存节点到根的距离,而这个距离在路径压缩的时候更新一下就可以了,dist[x]+=dist[parent[x]]。然后就是合并后的距离,令r1=Find(u),r2=Fin原创 2014-06-30 17:52:35 · 486 阅读 · 0 评论 -
hdu 3172 Virtual Friends (并查集 + 字典树)
题目: 链接:点击打开链接题意: 输入n,给出n行数据,每行有两个字符串,输出关系网络中朋友的个数,n行。思路: 代码:#include #include #include #include using namespace std;const int N = 22;const int M = 200020;st原创 2014-06-30 17:52:07 · 461 阅读 · 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 · 448 阅读 · 0 评论 -
hdu 3938 Portal(离线并查集)
题目: 链接:点击打开链接提议原创 2014-06-30 17:50:04 · 355 阅读 · 0 评论 -
hdu 1811 Rank of Tetris (并查集 + 拓扑排序)
题目: 链接:点击打开链接原创 2014-06-30 17:49:05 · 371 阅读 · 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 · 619 阅读 · 0 评论 -
hdu 1829 A Bug's Life (基础并查集)
题目: 链接:点击打开链接题意:思路:题目大意:Hopper教授正在研究一种稀有虫子的交配行为。他假设它们有两种性别并且它们只与异性交配。在他的实验中,很容易识别虫子和它们的交配行为,因为虫子背后印有编号。问题给定一组虫子的交配行为,确定实验是支持教授的假设即虫子没有同性恋,还是有部分交配行为不符合假设。 这道题实际上还是并查集,和以往不同的是。以往给原创 2014-06-12 09:43:58 · 599 阅读 · 0 评论 -
hdu 3926 Hand in Hand (同构图)
题目: 链接:点击打开链接题意: 给两个图判断是否为同构图,是输出yes,不是输出no。思路: 每个节点的最大度数为2,说明该图可能有多个连通分量,为环或链,遍历每个连通分量,记录该连通分量的结点个数以及他是环还是链。每个图按结点的个数排序,若子结点个数相等,则链先。排序后,比较两个图的是否每个元素都相等,如果相等则为同构原创 2014-06-10 15:17:45 · 684 阅读 · 0 评论 -
hdu 1598 find the most comfortable road (并查集 + 枚举)
题目: 链接:点击打开链接思路: 对边排序,再枚举每条边,如果出现通路(findset(x) == findset(y))就结束。代码:#include #include #include #include using namespace std;#define MAXN 220#define MAXM 1010#define MAX原创 2014-06-09 19:15:23 · 523 阅读 · 0 评论 -
hdu 1198 Farm Irrigation(并查集)
题目: 链接:原创 2014-06-03 21:32:35 · 634 阅读 · 0 评论