zoukankan      html  css  js  c++  java
  • hdu 1690 Bus System

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    const __int64 inf=1e18;
    const __int64 N=100+5;
    
    __int64 edge[N][N],use[N],g[N],l1,l2,l3,l4,c1,c2,c3,c4,n,m;
    
    
    __int64 getsum(__int64 x,__int64 y)
    {
        __int64 t;
        if(x-y<0) t=y-x;
        else t=x-y;
        if(t==0) return 0;
        if(t>l4) return -1;
        else if(t<=l4&&t>l3) return c4;
        else if(t<=l3&&t>l2) return c3;
        else if(t<=l2&&t>l1) return c2;
        else return c1;
    }
    
    void floyd()
    {
        __int64 i,j,k;
        for(k=0; k<n; k++)
        {
            for(i=0; i<n; i++)
            {
                for(j=0; j<n; j++)
                {
                    if(edge[i][k]>=inf||edge[k][j]>=inf) continue;
                    edge[i][j]=min(edge[i][j],edge[i][k]+edge[k][j]);
                }
            }
        }
    }
    int main()
    {
        __int64 ans,_,t,k,i,j,x,y;
        scanf("%I64d",&_);
        for(t=1; t<=_; t++)
        {
            scanf("%I64d%I64d%I64d%I64d %I64d%I64d%I64d%I64d",&l1,&l2,&l3,&l4,&c1,&c2,&c3,&c4);
            for(i=0; i<N; i++)
                for(j=0; j<N; j++)
                {
                    if(i==j) edge[i][j]=0;
                    else edge[i][j]=inf;
                }
    
            scanf("%I64d%I64d",&n,&m);
            for(i=0; i<n; i++)
            {
                scanf("%I64d",&g[i]);
            }
    
            for(i=0;i<n;i++)
                for(j=0;j<n;j++)
            {
                if(getsum(g[i],g[j])==-1) continue;
                edge[i][j]=min(getsum(g[i],g[j]),edge[i][j]);
            }
            floyd();
            printf("Case %I64d:
    ",t);
            for(i=0; i<m; i++)
            {
                scanf("%I64d%I64d",&x,&y);
                if(edge[x-1][y-1]>=inf) printf("Station %I64d and station %I64d are not attainable.
    ",x,y);
                else printf("The minimum cost between station %I64d and station %I64d is %I64d.
    ",x,y,edge[x-1][y-1]);
            }
        }
        return 0;
    }
    

    版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

  • 相关阅读:
    卡特兰数
    hdu 1023 Train Problem II
    hdu 1022 Train Problem
    hdu 1021 Fibonacci Again 找规律
    java大数模板
    gcd
    object dection资源
    Rich feature hierarchies for accurate object detection and semantic segmentation(RCNN)
    softmax sigmoid
    凸优化
  • 原文地址:https://www.cnblogs.com/xryz/p/4847957.html
Copyright © 2011-2022 走看看