zoukankan      html  css  js  c++  java
  • HDU Today

    #include<iostream>
    #include<string>
    #include<map>
    #include<vector>
    #define INF 999999
    using namespace std;
    int min(int a,int b){return a<b?a:b;}
    int N,totalplc=0;
    vector<int> m[205];
    map<string,int> place;
    int findmap(int sta,int end){
        if(sta>end){return m[end][sta];}
        return m[sta][end];
    }
    void setmap(int sta,int end,int val){
        int t;
        if(sta>end){t=end;end=sta;sta=t;}
        if(sta==end){m[sta][end]=0;return;}
        m[sta][end]=val;
    }
    int main(){
        int a,b,c;
        string startplc,endplc,tsta,tend;
        
        while(cin>>N && N!=-1){
            cin>>startplc>>endplc;
            
            for(int yy=0;yy<=200;yy++){
                m[yy].resize(201);
                for(int xx=0;xx<=yy;xx++){
                    setmap(xx,yy,INF);
                }
            }place.clear();totalplc=0;
            for(int i=0;i<N;i++){
                cin>>tsta>>tend>>c;
                a=place.count(tsta);
                b=place.count(tend);
                if(a==0){place[tsta]=totalplc++;}
                if(b==0){place[tend]=totalplc++;}
                setmap(place[tsta],place[tend],c);
            }
            if(startplc==endplc){cout<<0<<endl;continue;}
            for(int mid=0;mid<totalplc;mid++){
                for(int sta=0;sta<totalplc;sta++){
                    for(int end=0;end<totalplc;end++){
                        a=findmap(sta,end);
                        b=findmap(sta,mid)+findmap(mid,end);
                        setmap(sta,end,min(a,b));
                    }
                }
            }
            a=place.count(startplc);
            b=place.count(endplc);
            c=findmap(place[startplc],place[endplc]);
    
            if(a==0 || b==0 || c==INF)
                cout<<-1<<endl;
            else
                cout<<c<<endl;
        }
        return 0;
    
    }

    http://acm.hdu.edu.cn/diy/contest_showproblem.php?pid=1002&cid=36602

  • 相关阅读:
    day22 os模块
    开始 Dojo 开发
    Java 多线程编程
    Oracle 中常用数据字典大总结
    使用Java API的5个技巧
    Java 守护线程概述
    给Java新手的一些建议——Java知识点归纳(Java基础部分)
    消息中间件收录集
    2017年Java面试题整理
    Java 9 新特性快速预览
  • 原文地址:https://www.cnblogs.com/forwhat00/p/13245911.html
Copyright © 2011-2022 走看看