poj 2139 Six Degrees of Cowvin Bacon floyd算法
2014-11-15 13:11
239 查看
题意:
在n个顶点的图中求与其他n-1个点最短距离和最小的点,输出 最小化的最短距离和*100/(n-1)。
思路:
floyd求任意两点的最短距离,然后取最优。
代码:
在n个顶点的图中求与其他n-1个点最短距离和最小的点,输出 最小化的最短距离和*100/(n-1)。
思路:
floyd求任意两点的最短距离,然后取最优。
代码:
//poj 2139 //sepNINE #include <iostream> using namespace std; const int maxN=312; int g[maxN][maxN]; int tmp[maxN]; int main() { int i,j,k,n,m; memset(g,-1,sizeof(g)); scanf("%d%d",&n,&m); for(i=1;i<=n;++i) g[i][i]=1; while(m--){ int x; scanf("%d",&x); for(i=1;i<=x;++i) scanf("%d",&tmp[i]); for(i=1;i<=x;++i) for(j=1;j<i;++j) g[tmp[i]][tmp[j]]=g[tmp[j]][tmp[i]]=1; } for(k=1;k<=n;++k) for(i=1;i<=n;++i) for(j=1;j<=n;++j) if(g[i][k]!=-1&&g[k][j]!=-1) if(g[i][j]==-1) g[i][j]=g[i][k]+g[k][j]; else g[i][j]=min(g[i][j],g[i][k]+g[k][j]); int ans=INT_MAX; for(i=1;i<=n;++i){ g[i][0]=0; for(j=1;j<=n;++j) if(i!=j) g[i][0]+=g[i][j]; ans=min(ans,g[i][0]); } printf("%d",100*ans/(n-1)); return 0; }
相关文章推荐
- [POJ](2139)Six Degrees of Cowvin Bacon ---- 最短路径算法(Floyd)
- POJ2139 Six Degrees of Cowvin Bacon (Floyd 最短路径)
- Six Degrees of Cowvin Bacon.(POJ-2139)
- 【图论floyd】 poj 2139 Six Degrees of Cowvin Bacon
- POJ 2139 Six Degrees of Cowvin Bacon 笔记
- POJ 2139-Six Degrees of Cowvin Bacon(最短路Floyd)
- POJ 2139 Six Degrees of Cowvin Bacon
- POJ 2139 Six Degrees of Cowvin Bacon
- POJ 2139 Six Degrees of Cowvin Bacon (Floyd)
- POJ 2139 Six Degrees of Cowvin Bacon (floyd)
- AOJ -0189 Convenient Location && poj 2139 Six Degrees of Cowvin Bacon (floyed求任意两点间的最短路)
- 任意两点间最短距离floyd-warshall ---- POJ 2139 Six Degrees of Cowvin Bacon
- POJ 2139 Six Degrees of Cowvin Bacon【floyd】
- POJ-2139-Six Degrees of Cowvin Bacon
- POJ 2139 Six Degrees of Cowvin Bacon
- POJ 2139 Six Degrees of Cowvin Bacon 最短路
- warshall-floyd算法:POJ No 2139 Six Degress of Cowvin Bacon(任意两点最短路径))
- poj2139 Six Degrees of Cowvin Bacon
- Six Degrees of Cowvin Bacon (poj 2139 最短路Floyd)
- POJ 2139 Six Degrees of Cowvin Bacon