zoj 1082 Stockbroker Grapevine

来源:互联网 发布:linux shell 退出脚本 编辑:程序博客网 时间:2024/05/13 14:24

求最短路,dp

#include <bits/stdc++.h>using namespace std;int main(){    //freopen("in.txt","r",stdin);    //freopen("out.txt","w",stdout);    int n;    int mapp[110][110];    while(~scanf("%d",&n)&&n){        for (int i=0;i<110;i++){            fill(mapp[i],mapp[i]+110,1<<20);            mapp[i][i]=0;        }        for (int i=1;i<=n;i++){            int m;scanf("%d",&m);            for (int s=0;s<m;s++){                int k,time;                scanf("%d%d",&k,&time);                mapp[i][k]=time;            }        }        for (int i=1;i<=n;i++){            for (int s=1;s<=n;s++){                for (int k=1;k<=n;k++){                    mapp[s][k]=min(mapp[s][i]+mapp[i][k],mapp[s][k]);                }            }        }        int st=0;        int minnum=1<<20+10;        for (int i=1;i<=n;i++){            int maxnum=0;            for (int s=1;s<=n;s++){                maxnum=max(maxnum,mapp[i][s]);            }            if (minnum>maxnum){                st=i;                minnum=maxnum;            }        }        if (minnum==1<<20+10){            printf("disjoint\n");        } else printf("%d %d\n",st,minnum);    }    return 0;}


0 0
原创粉丝点击