
图论
文章平均质量分 71
maiyuetong
这个作者很懒,什么都没留下…
展开
-
hdu 1704 传递闭包
<br />//题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1704<br />//题意描述:给你一些胜负关系,问最后有多少组人无法知道胜负关系。<br />//思路: 将已经有胜负关系的用一条有向边连在一起,即将题目转换为求任何图的传递闭包,若2个人之间没有胜负关系,则他们之间不存在边<br /> <br />#include <iostream>using namespace std;const int MAXN = 500+10;i原创 2011-04-29 16:36:00 · 795 阅读 · 0 评论 -
hdu 3631 顶点间的最短路径
<br />//有向图求2点间的最短路径,要求只能经过被标记的点<br />#include <iostream><br />using namespace std;<br />const int MAXN = 300+10;<br />const int INF = 0x3ffffff;<br />int dis[MAXN][MAXN];<br />int sign[MAXN];<br />int n,m,q;<br />//每次新加入一个点,更新顶点对间的最短路径(floyd)<br />void up原创 2011-04-29 15:04:00 · 822 阅读 · 2 评论 -
hdu 1181 floyd求有向图传递闭包
//floyd求传递闭包#include #include using namespace std;int map[200][200];void floyd(){ for(int k='a'; k { for(int i='a'; i { /* if(i == k) { continue; }*/ for(int j='a'; j { map[i][j] = map[i][j] || (map[i][k] && map[k][j]); } } }}int main(原创 2011-04-29 15:40:00 · 1868 阅读 · 0 评论 -
hdu 3499 最短路变形
// hdu 3499.cpp : 定义控制台应用程序的入口点。/*题意描述:给定一个带权值的有向图,求给定2点之间的最短距离。但是你有一次机会将某条边的权值变为原来的一半。解题思路: 1,在正向图中求一次dijk,求起点到任何点的距离dis_start[i] 2,在反向图中求一次dijk, 求终点到任何点的距离dis_end[i] 3,枚举所有的边 ans = min{dis_start[i] + weight[i][j] + dis_end[j]} 题目数据很BT,所以要用到邻原创 2011-05-03 23:12:00 · 1054 阅读 · 0 评论 -
【转载】Tarjan算法
http://apps.hi.baidu.com/share/detail/15830459 很好恨强大。。。转载 2011-07-15 23:09:21 · 469 阅读 · 0 评论 -
hdu 3836,tarjan算法的应用(有向图缩点)
// hdu Equivalent Sets.cpp : 定义控制台应用程序的入口点。///*题目描述:将题目中的集合转换为顶点,A集合是B集合的子集,转换为,即题目给我们一个有向图,问最少需要添加多少条边使之成为强连通图。解题思路:通过tarjan算法找出图中的所有强连原创 2011-07-16 00:00:28 · 3547 阅读 · 1 评论 -
Bellman_ford或spfa 判断图是否存在负环
/*判断负环的两种方法:Spfa思想:如果存在一个点进入队列的次数超过N次,则存在负环。bellman_ford思想:对所有的边进行v-1 松弛即如果 dis[u]+map[u][v] < dis[v] 则 dis[v] = dis[u]+map[u][v] 若v-1次原创 2011-07-28 22:12:36 · 3484 阅读 · 0 评论 -
hdu 1010DFS
//几个剪枝的方法如果不明白再问我#include using namespace std;int row,column,time;int op[4][2] = {-1,0,1,0,0,-1,0,1};char grap[10][10];int start原创 2011-08-15 23:49:51 · 1578 阅读 · 2 评论 -
hdu 1401 双向广搜+8进制压缩状态
// hdu 1491.cpp : 定义控制台应用程序的入口点。/*题目询问能否能从一个状态到另外一个状态而少于8步移动。每个状态为4个不同的点,即8个坐标。由于从初始状态到目标状态,和目标状态到初始状态的效果是一样,所以可以采用双向广搜。每次选取节点比较少的队列进行扩展原创 2011-08-30 19:16:52 · 1271 阅读 · 1 评论