poj 2139 Six Degrees of Cowvin Bacon , floyd

点击打开链接

题意:给定牛的关系图,求其中一头牛与其他牛关系路程之和sum最小,然后输出 sum*100/(n-1)

floyd求任意两点间的最短路程

注意: inf不能太大,因为 f[i][k] + f[k][j]  做加法时可能会溢出!

#include <cstdio>
#include <cstring>

const int maxn = 300 + 5;
const int inf = 1<<29;
int n, m;
int f[maxn][maxn];
int a[maxn];

void floyd()
{
    int i, j, k;
    for(k=1; k<=n; ++k)
        for(i=1; i<=n; ++i)
            for(j=1; j<=n; ++j) {
                if(f[i][j]> f[i][k] + f[k][j])
                    f[i][j] = f[i][k] + f[k][j];
            }
}
int main()
{
    int i, j, k, ans, ret;
    while(~scanf("%d%d",&n, &m)) {
        for(i=0; i<=n; ++i) {
            for(j=0; j<=n; ++j) f[i][j] = inf;
            f[i][i] = 0;
        }
        while(m--) {
            scanf("%d", &k);
            for(i=0; i<k; ++i) {
                scanf("%d", &a[i]);
                for(j=0; j<i; ++j)
                    f[a[i]][a[j]] = f[a[j]][a[i]] = 1;
            }
        }
        floyd();

        ans = inf;
        for(i=1; i<=n; ++i) {
            ret = 0;
            for(j=1; j<=n; ++j)
                ret += f[i][j];
            if(ans > ret) ans = ret;
        }
        printf("%d\n", ans*100/(n-1));
    }
    return 0;
}

poj 2139 Six Degrees of Cowvin Bacon , floyd

时间: 2024-08-14 15:47:17

poj 2139 Six Degrees of Cowvin Bacon , floyd的相关文章

POJ 2139 Six Degrees of Cowvin Bacon

Six Degrees of Cowvin Bacon Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2986   Accepted: 1390 Description The cows have been making movies lately, so they are ready to play a variant of the famous game "Six Degrees of Kevin Bacon&quo

POJ 2139 SIx Degrees of Cowvin Bacon 最短路 水題

Six Degrees of Cowvin Bacon Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3602   Accepted: 1675 Description The cows have been making movies lately, so they are ready to play a variant of the famous game "Six Degrees of Kevin Bacon&quo

任意两点间最短距离floyd-warshall ---- POJ 2139 Six Degrees of Cowvin Bacon

floyd-warshall算法 通过dp思想 求任意两点之间最短距离 重复利用数组实现方式dist[i][j] i - j的最短距离 for(int k = 1; k <= N; k++) for (int i = 1; i <= N; i++) for (int j = 1; j <= N; j++) dist[i][j] = min(dist[i][j], dist[i][k]+dist[k][j]); 非常好实现 O(V^3) 这里贴一道刚好用到的题 http://poj.org

最短路(构图) 之 poj 2139 Six Degrees of Cowvin Bacon

/* 解决此题,关键在于构图. 目标: The N (2 <= N <= 300) cows are interested in figuring out which cow has the smallest average  degree of separation from all the other cows. excluding herself of course. 即:求解过任意两点间的最短路后,sumMin = min{ sum{dp[1][1->n]}, sum{dp[2]

POJ2139 Six Degrees of Cowvin Bacon [Floyd]

水题,随手敲过 一看就是最短路问题,a,b演同一场电影则他们的距离为1 默认全部两两原始距离无穷,到自身为0 输入全部数据处理后floyd 然后照它说的求平均分离度 再找最小的,×100取整输出 #include <cstdio> #include <algorithm> #include <iostream> using namespace std; int cownum,filmnum; int film[11111][333]; int g[333][333];

Six Degrees of Cowvin Bacon (poj 2139 最短路Floyd)

Language: Default Six Degrees of Cowvin Bacon Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3288   Accepted: 1529 Description The cows have been making movies lately, so they are ready to play a variant of the famous game "Six Degrees

POJ2139 Six Degrees of Cowvin Bacon 【Floyd】

Six Degrees of Cowvin Bacon Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3131   Accepted: 1455 Description The cows have been making movies lately, so they are ready to play a variant of the famous game "Six Degrees of Kevin Bacon&quo

POJ No 2139 Six Degress of Cowvin Bacon(warshall_floyd(任意两点最短路径))

题目: http://poj.org/problem?id=2139 题解:N只牛,在一组的两只牛,分别两只之间为 “1度”,自己到自己为0度,M组牛.求,N只牛之中,两只牛之间 平均最短度数*100.模板Floyd算法,求任意两点之间最短路径. #include <iostream> #include <algorithm> #include <iomanip> using namespace std; const int maxn = 300 + 24; const

【Floyd】POJ2139 -Six Degrees of Cowvin Bacon

普通的Floyd了分分秒可以水过,结果在submit前删调试段落的时候把程序本体给删了吃了两个WA…… 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 const int INF=3000000; 5 using namespace std; 6 const int MAXN=10000; 7 int len[MAXN][MAXN]; 8 int f[MAXN][MAXN]; 9 10 int