zoukankan      html  css  js  c++  java
  • Floyd(选地址)

    Description

    小X有很多朋友,分布在N个城市。。
    NN个城市之间,有些有直接的道路,有些是间接联通的(保证任何两个城市都可以相互到达。。)
    但是、经过每条道路都是有代价的、
    于是。。
    小X希望你来帮他找出一个城市,使得他的所有朋友到这个城市的代价最小。

    Input

    输入共2n+1行,
    其中第一行为一个整数N
    第2~N+1行,每行有N个整数、表示两个城市间的代价、(0表示不直接连通)
    n+2~2N+1行,每行一个整数。表示每个城市中小X的朋友数。

    Output

    输出有两行。
    第一行为你选中的城市
    第二行为最小需要的代价。

    Samples

    Input Copy
    5
    0 1 2 0 0 
    1 0 0 0 20
    2 0 0 10 0
    0 0 10 0 1
    0 20 0 1 0
    2
    3
    4
    5
    6
    Output
    4
    109

    Hint

    对于100%的数据,n200, 输出保证不超过long int

    Source

    石光中学 2018泉州集训普及组day5

    这个题就是 Floyd处理一下矩阵

    #include<iostream>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    const int maxn=1e3+100;
    ll a[maxn][maxn];
    ll dis[maxn];
    ll q[maxn];
    int main(){
        int n;
        cin>>n;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                cin>>a[i][j];
                if(a[i][j]==0){
                    a[i][j]=0x3f3f3f3f;
                }
            } 
        } 
        for(int i=1;i<=n;i++){
            a[i][i]=0;
        }
        for(int k=1;k<=n;k++){
            for(int i=1;i<=n;i++){
                for(int j=1;j<=n;j++){
                    a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
                }
            }
        }
        for(int i=1;i<=n;i++){
            cin>>q[i];
        }
        ll ans=0x3f3f3f3f;
        int x;
        for(int i=1;i<=n;i++){
            ll z=0;
            for(int j=1;j<=n;j++){
                z+=q[j]*a[i][j];
            }
            if(z<ans){
                ans=z;
                x=i;
            }
        } 
        cout<<x<<endl<<ans<<endl;
    }
  • 相关阅读:
    启动时创建线程并传递数据
    C# 匿名方法 委托 Action委托 Delegate委托
    linq里的select和selectmany操作 投影运算
    C# 基础小知识之yield 关键字 语法糖
    在您的应用上运行性能测试
    loadrunner11有效的license
    30-hadoop-hbase-安装squirrel工具
    31-hadoop-hbase-mapreduce操作hbase
    29-hadoop-使用phtonenix工具&分页&数据导入
    28-hadoop-hbase入门小程序
  • 原文地址:https://www.cnblogs.com/lipu123/p/14305892.html
Copyright © 2011-2022 走看看