POJ 1125 Stockbroker Grapevine (Floyd)
2011-07-28 23:49
369 查看
消息传播,每个人只有从固定的人那里得到信息才会相信,且传播需要时间.求所有人都知道消息的最短时间以及消息是从哪个人发出的..
很明显的求全源最短路径,直接用Floyd就可以了.
遍历从每一个人发出消息所需要的时间,取最大值,如果不能让所有人都收到就继续遍历下一个人,如果可行就用结果跟新min值,如果所有人都不可行显然是"disjoint";
很明显的求全源最短路径,直接用Floyd就可以了.
遍历从每一个人发出消息所需要的时间,取最大值,如果不能让所有人都收到就继续遍历下一个人,如果可行就用结果跟新min值,如果所有人都不可行显然是"disjoint";
#include <cstdio> #include <cmath> #include <algorithm> #define INF 1e6 using namespace std; int n; int d[102][102]; void init(int n){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ d[i][j]=(i==j)?0:INF; } } } int main(){ //freopen("in.txt","r",stdin); int n2,a,b; while(scanf("%d",&n)&&n){ init(n); for(int i=1;i<=n;i++){ scanf("%d",&n2); for(int j=1;j<=n2;j++){//注意是有向图 scanf("%d%d",&a,&b); d[i][a]=b; } } for(int k=1;k<=n;k++){//Floyd求全源最短路径 for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(d[i][j]>d[i][k]+d[k][j])d[i][j]=d[i][k]+d[k][j]; } } } int mi=INF,index;//最小值,以及传播者编号 for(int i=1;i<=n;i++){ int ma=0,wrong=0;//wrong标记是否全部可通 for(int j=1;j<=n;j++){ if(d[i][j]==INF){wrong=1;break;}//不全部可通,直接退出循环 ma=max(ma,d[i][j]); } if(ma<mi&&!wrong){//当全部可以传播到并且小于最小值时跟新最小值 mi=ma,index=i; } } if(mi!=INF)printf("%d %d\n",index,mi); else printf("disjoint\n"); //最小值未被跟新,说明从哪个点出去都不能到达其它所有点 } }
相关文章推荐
- POJ1125 Stockbroker Grapevine【Floyd】
- Stockbroker Grapevine POJ 1125 Floyd
- poj-1125-Stockbroker Grapevine-Floyd
- poj 1125 Stockbroker Grapevine——Floyd
- 【POJ1125】Stockbroker Grapevine(动态规划,floyd)
- poj1125 Stockbroker Grapevine 图论,任意两点间最短路径,floyd
- Poj 1125 Stockbroker Grapevine(floyd小变形)
- POJ 1125 Stockbroker Grapevine(Floyd)
- poj 1125 Stockbroker Grapevine(floyd求最短路)
- POJ1125 Stockbroker Grapevine SPFA或Floyd
- poj 1125 Stockbroker Grapevine(Floyd模板题)
- POJ - 1125 Stockbroker Grapevine (动态规划理解floyd)
- POJ 1125 Stockbroker Grapevine 图论 Floyd-Washall算法
- POJ 1125 Stockbroker Grapevine(Floyd)
- POJ 1125 Stockbroker Grapevine (FloydWarshall 所有点对最短路径)
- POJ 1125 Stockbroker Grapevine【floyd简单应用】
- poj 1125 Stockbroker Grapevine 【最短路 Floyd】
- POJ1125 Stockbroker Grapevine 【Floyd】
- POJ 1125 - Stockbroker Grapevine ( floyd最短路 )
- POJ 1125 Stockbroker Grapevine【floyd简单应用】