hdu3790 单点floyd松弛
来源:互联网 发布:淘宝可以卖杂货吗 编辑:程序博客网 时间:2024/04/27 19:08
/*此题就是为floyd而设,题目每次明确对一个顶点松弛,最后所求是全局最短路,因此每次只需对一个顶点进行floyd算法,另外注意顶点标号是从0开始*/#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#define N 305#define INF 0x3f3f3f3fusing namespace std;int m, n, q;int map[N][N];int vis[N];void init(){for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){if (i == j)map[i][j] = 0;else map[i][j] = INF;}}}void creatgraph(){int t1, t2, t3;for (int i = 0; i < m; i++){scanf("%d%d%d", &t1, &t2, &t3);//两个顶点和权值if (map[t1][t2] > t3)//防止出现多次输入相同的两点,取最小值****一定注意map[t1][t2] = t3;//有向图}}void floyd(int k){for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){if (map[i][k] < INF && map[k][j] < INF)map[i][j] = min(map[i][j], map[i][k] + map[k][j]);}}}int main(){int cas = 0;while (scanf("%d%d%d", &n, &m, &q) != EOF && (n || m || q))//n个顶点,m条边{if (cas != 0)printf("\n");printf("Case %d:\n", ++cas);init();//初始化地图memset(vis, 0, sizeof(vis));creatgraph();//建图for (int i = 0; i < q; i++){int type;scanf("%d", &type);if (!type){int v;scanf("%d", &v);if (vis[v])printf("ERROR! At point %d\n", v);else{floyd(v);//对顶点v进行松弛vis[v] = 1;//标记顶点v已松弛}}else{int x, y;scanf("%d%d", &x, &y);if (!vis[x] || !vis[y])//x,y均未被标记printf("ERROR! At path %d to %d\n", x, y);else if (map[x][y] >= INF)//y不可达printf("No such path\n");else printf("%d\n", map[x][y]);}}}return 0;}
0 0
- hdu3790 单点floyd松弛
- POJ 2253 Frogger (Floyd 松弛操作)
- hdu3790
- hdu3790
- hdu3790
- hdu3790
- HDU3790
- ZOJ 2027 floyd(条件松弛)+spfa解法
- hdu 5636 &&bestcoder #74 1002 Shortest Path [floyd+松弛]【图论+思维】
- HDU3790(Dijkstra)
- HDU3790(SPFA)
- HDU3790 SPFA
- 松弛变量
- 松弛变量
- 松弛迭代法
- 松弛条件
- hdu3790 (最短路)
- hdu3790-----单源最短路径
- 优酷路由宝 tf异常 解决办法
- java设计模式之责任链模式
- UITableView和UITableViewCell
- java 整合redis缓存 SSM 后台框架 rest接口 shiro maven
- c和Java在自加上的陷阱
- hdu3790 单点floyd松弛
- mysql 分表-横向,纵向
- poj 2485 Highways(prim)
- gitbash的使用,本地建feature branch
- A - Taymyr is calling you
- 负载均衡 session解决方案
- java 企业网站源码模版 有前后台 springmvc SSM 生成静态化
- sources.list 阿里源
- 基于UE4开发的家装系统(地图编辑系统)