hdu 1599 floyd 最小环

floyd真的是水很深啊 各种神奇

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#define mem(a,b) memset(a,b,sizeof(a))
#define ll __int64
#define MAXN 1000
#define INF 20000000
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
using namespace std;
int d[200][200];
int g[200][200];
int ans,n,m;
void floyd()
{
    int i,j,k;
    for(k=1;k<=n;k++)
    {
        for(i=1;i<k;i++)
        {
            for(j=i+1;j<k;j++)
            {
                ans=min(ans,g[i][k]+g[k][j]+d[i][j]);
            }
        }
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
            }
        }
    }
}
int main()
{
    int i,j;
    int a,b,c;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        for(i=0;i<=n;i++)
        {
            for(j=0;j<=n;j++)
            {
                if(i==j) d[i][j]=g[i][j]=0;
                else
                         d[i][j]=g[i][j]=INF;
            }
        }
        while(m--)
        {
            scanf("%d%d%d",&a,&b,&c);
            if(d[a][b]>c)
            d[a][b]=d[b][a]=g[a][b]=g[b][a]=c;
        }
        ans=INF;
        floyd();
        if(ans==INF) printf("It‘s impossible.\n");
        else
            printf("%d\n",ans);
    }
    return 0;
}

  

hdu 1599 floyd 最小环,布布扣,bubuko.com

时间: 2024-10-13 00:59:49

hdu 1599 floyd 最小环的相关文章

HDU 1599 find the mincost route (Floyd求最小环) &gt;&gt;

Problem Description 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区.现在8600需要你帮他找一条这样的路线,并且花费越少越好. Input 第一行是2个整数N和M(N <= 100, M <= 1000),代表景区的个数和道路的条数. 接下来的M行里,每行包括

hdu 1599 find the mincost route 最小环

题目链接:HDU - 1599 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区.现在8600需要你帮他找一条这样的路线,并且花费越少越好. Input 第一行是2个整数N和M(N <= 100, M <= 1000),代表景区的个数和道路的条数.接下来的M行里,每行包括3个整数a

ACM图论—最小环问题 ( 仔细分析+理解+代码 )(HDU 1599 ) (POJ 1743)

说明:如果发现错误或者有任何问题,任何不理解的地方请评论提出,或私信me,^ _ ^ ACM-图论 最小环问题(Floyd算法应用) 最小环问题是Floyd算法的应用,并不难,和Floyd算法一样难度.但是如果要输出最小环路径就要稍微麻烦一点,也不难. 1.计算最小环值(HDU 1599) 有向图最小环: 有向图最小环最少要有2个点组成环,这个的写法就是用Floyd()求最短距离,最后所有点中的最短距离的最小值就是答案. 无向图最小环: 肯定和有向环做法有区别,无向图构成环最少要有3个点,所以求

hdoj 1599 find the mincost route【floyd+最小环】

find the mincost route Time Limit: 1000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3273    Accepted Submission(s): 1320 Problem Description 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1

hdu 1599 find the mincost route

http://acm.hdu.edu.cn/showproblem.php?pid=1599 floyd找最小环. 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #define maxn 200 5 using namespace std; 6 const int inf=1<<28; 7 8 int g[maxn][maxn],dis[maxn][maxn]; 9 int

Floyd最小环Hdu1599

http://acm.hdu.edu.cn/showproblem.php?pid=1599 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 #include <cstdio> #include <cstdlib

HDU 1599

裸的FLOYD 求最小环. 1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 const int inf=100000000; 5 const int MAXN=105; 6 int n,m,minc; 7 int map[MAXN][MAXN],dis[MAXN][MAXN]; 8 9 void init(){ 10 for(int i=1;i<=n;i++){ 11 for(int j=i

HDU 1847(floyd)

畅通工程续 高仿代码如下 #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int inf = 0x3f3f3f3f;#define N 205int d[N][N];void floyd(int n){    for(int k = 0;k < n;k++)    for(int i = 0;i <

HDOJ--1599--find the mincost route(floyd+最小环)

find the mincost route Time Limit: 1000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3393    Accepted Submission(s): 1382 Problem Description 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V