hau 1874 畅通工程续
来源:互联网 发布:js调用浏览器打印 编辑:程序博客网 时间:2024/06/09 23:31
点击打开链接hdu 1874
思路:最短路+floyd
注意事项:由于输入的数据中会有重边的出现,那么如果出现重边的时候应该取值小的那一个。(这个trick让我WA了很久)
代码:
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;#define MAXN 210#define INF 0xFFFFFFFlong long dis[MAXN][MAXN];int vis[MAXN];int star , end;int n , m;void init(){ for(int i = 0 ; i < n ; i++){ for(int j = 0 ; j < n ; j++){ if(i == j) dis[i][j] = 0; else dis[i][j] = INF; } }}long long min(long long a , long long b){ return a < b ? a : b;}void floyd(){ for(int k = 0 ; k < n ; k++){ for(int i = 0 ; i < n ; i++){ for(int j = 0 ; j < n ; j++) dis[i][j] = min(dis[i][j] , dis[i][k]+dis[k][j]); } }}int main(){ // freopen("input.txt" , "r" , stdin); int value; while(scanf("%d%d" , &n , &m) != EOF){ init(); for(int i = 0 ; i < m ; i++){ scanf("%d%d%d" , &star , &end , &value); if(dis[star][end] == INF) dis[star][end] = dis[end][star] = value; else{ if(dis[star][end] > value) dis[star][end] = dis[end][star] = value; } } scanf("%d%d" , &star , &end); floyd(); if(dis[star][end] != INF) printf("%lld\n" , dis[star][end]); else printf("-1\n"); } return 0;}
- hau 1874 畅通工程续
- 1874畅通工程续
- 1874 畅通工程续
- HDU 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- HDU 1874 畅通工程续
- HDOJ 1874 畅通工程续
- HDU 1874 畅通工程续
- HDU 1874 畅通工程续
- HDU 1874 畅通工程续
- HDU 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- HDU 1874 畅通工程续
- SQL Server 2008中的9种数据挖掘算法 .
- 母爱——值得你用一生去回报
- POJ 2352 Stars
- ClassLoader原理
- (第Ⅲ部分 结构型模式篇) 第11章 外观模式(Façade Pattern)
- hau 1874 畅通工程续
- (第Ⅲ部分 结构型模式篇) 第12章 享元模式(Flyweight Pattern)
- CSS教程基础
- (第Ⅲ部分 结构型模式篇) 第13章 代理模式(Proxy Pattern)
- C文件如何成为可执行文件(编译、链接、执行)——摘自《程序员的自我修养》
- (第Ⅲ部分 结构型模式篇) 第14章 结构型模式专题总结
- ogitor编译全过程
- uTorrent Transport Protocol
- (第Ⅳ部分 行为型模式篇) 第15章 模版方法模式(Template Method)