博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【POJ 1125】Stockbroker Grapevine
阅读量:6471 次
发布时间:2019-06-23

本文共 4087 字,大约阅读时间需要 13 分钟。

最短路 只是这题数据非常水。

主要想大牛们试试南阳OJ同题 链接例如以下:

数据增大非常多 用到非常多东西才干过 (弱没过,。。

这题就是求最短路寻找全部通路中最大权的最小值外加考验英语水平……

Floyd 208K 0MS 1162B

#includeusing namespace std;int dis[111][111],n;void Floyd(){    int i,j,k,tmax,mmax,f;    for(k = 1; k <= n; ++k)        for(i = 1; i <= n; ++i)            for(j = 1; j <= n; ++j)                if(dis[i][j] > dis[i][k] + dis[k][j])                    dis[i][j] = dis[i][k] + dis[k][j];    mmax = INF;    for(i = 1; i <= n; ++i)    {        f = 1;        tmax = 0;        for(j = 1; j <= n; ++j)        {            if(i == j) continue;            if(dis[i][j] == INF) f = 0;            tmax = max(tmax,dis[i][j]);        }        if(f && tmax < mmax)        {            k = i;            mmax = tmax;        }    }    if(mmax != INF) printf("%d %d\n",k,mmax);    else puts("disjoint");}int main(){    int i,k,v;    while(~scanf("%d",&n) && n)    {        memset(dis,INF,sizeof(dis));        for(i = 1; i <= n; ++i)        {            scanf("%d",&k);            while(k--)            {                scanf("%d",&v);                scanf("%d",&dis[i][v]);            }        }        Floyd();    }    return 0;}

Dijkstra 168K 0MS 1491B

#includeusing namespace std;typedef struct Edge{    int v,w,next;}Edge;Edge eg[11111];int head[111],dis[111],n,tp;bool vis[111];int Dijkstra(int u){    memset(dis,INF,sizeof(dis));    memset(vis,0,sizeof(vis));    dis[u] = 0;    int m,p,i,j;    for(i = 1; i <= n; ++i)    {        p = -1;        m = INF;        for(j = 1; j <= n; ++j)        {            if(!vis[j] && dis[j] < m)            {                p = j;                m = dis[j];            }        }        if(i == n || p == -1) break;        vis[p] = 1;        for(j = head[p]; j != -1; j = eg[j].next)        {            if(!vis[eg[j].v] && dis[eg[j].v] > dis[p] + eg[j].w)                dis[eg[j].v] = dis[p] + eg[j].w;        }    }    if(p == -1) return INF;    return dis[p];}int main(){    int i,k,m,t;    while(~scanf("%d",&n) && n)    {        m = INF;        tp = 0;        memset(head,-1,sizeof(head));        for(i = 1; i <= n; ++i)        {            scanf("%d",&k);            while(k--)            {                scanf("%d %d",&eg[tp].v,&eg[tp].w);                eg[tp].next = head[i];                head[i] = tp++;            }        }        k = 0;        for(i = 1; i <= n; ++i)        {            t = Dijkstra(i);            if(t < m)            {                k = i;                m = t;            }        }        if(k)            printf("%d %d\n",k,m);        else puts("disjoint");    }    return 0;}

SPFA 180K 0MS 1668B

#includeusing namespace std;typedef struct Edge{    int v,w,next;}Edge;Edge eg[11111];int head[111],dis[111],n,tp;bool vis[111];int SPFA(int u){    memset(dis,INF,sizeof(dis));    memset(vis,0,sizeof(vis));    dis[u] = 0;    queue 
q; q.push(u); int v,w,i,p,m; while(!q.empty()) { p = q.front(); q.pop(); vis[u] = 0; for(i = head[p]; i != -1; i = eg[i].next) { v = eg[i].v; w = eg[i].w; if(dis[v] > dis[p] + w) { dis[v] = dis[p] + w; if(!vis[v]) { vis[v] = 1; q.push(v); } } } } m = 0; for(i = 1; i <= n; ++i) { if(i == u) continue; if(dis[i] == INF) return INF; m = max(m,dis[i]); } return m;}int main(){ int i,k,m,t; while(~scanf("%d",&n) && n) { m = INF; tp = 0; memset(head,-1,sizeof(head)); for(i = 1; i <= n; ++i) { scanf("%d",&k); while(k--) { scanf("%d %d",&eg[tp].v,&eg[tp].w); eg[tp].next = head[i]; head[i] = tp++; } } k = 0; for(i = 1; i <= n; ++i) { t = SPFA(i); if(t < m) { k = i; m = t; } } if(k) printf("%d %d\n",k,m); else puts("disjoint"); } return 0;}

转载地址:http://gkcko.baihongyu.com/

你可能感兴趣的文章
安装rrdtool报错:Can't locate ExtUtils/MakeMaker.pm in @INC
查看>>
scrollView中内部控件的悬停
查看>>
在一个form中有两个submit,值分别为修改和删除,如何在提交时用js判断submit值为修改还是删除呢...
查看>>
flash重点积累
查看>>
寻找第k元
查看>>
PHP极速开发框架LotusAdmin page版发布
查看>>
display属性
查看>>
REVEAL APP for IOS 永久试用
查看>>
雷林鹏分享:PHP 变量
查看>>
实现用户要求的若干道2年级四则运算题程序测试
查看>>
dataList中实现用复选框一次删除多行问题
查看>>
Java中throws和throw的区别讲解
查看>>
Spring(四)注解配置Ioc
查看>>
FreeCodeCamp:Confirm the Ending
查看>>
把媒体当手段还是当目的?
查看>>
pycharm 常用设置
查看>>
Win8 XAML 自定义控件资源加载与释放窍门
查看>>
hdu2149
查看>>
你真的会使用XMLHttpRequest吗?
查看>>
二分图匹配的两个主要算法 模板
查看>>