codeforces-368 B. Bakery

来源:互联网 发布:重庆大学网络教育官网 编辑:程序博客网 时间:2024/05/24 04:21

题意:n,m,k三个值

    n个城市 m条道 k个可以选择的存储仓。

            输出一个最少的钱数可以建立的存储仓和其他城市的联系

思路:

    建立a.b数组 C存储长度。这个代码挺巧妙。直接往编号里存东西。如果K可以到a[i] b[i]中的一点,那么查询值并且修改

#include<bits/stdc++.h>

using namespace std;
const int maxn = 1e5+6;
int n,m,k;
int a[maxn],b[maxn],c[maxn],vis[maxn];
int main()
{
    scanf("%d%d%d",&n,&m,&k);
    for(int i=1;i<=m;i++)
        scanf("%d%d%d",&a[i],&b[i],&c[i]);
    for(int i=1;i<=k;i++)
    {
        int x;
        scanf("%d",&x);
        vis[x]=1;
    }
    int ans1=1e9+7;
    for(int i=1;i<=m;i++)
    {
        if(vis[a[i]]+vis[b[i]]==1)
            ans1=min(ans1,c[i]);
    }
    if(ans1==1e9+7)printf("-1\n");
    else printf("%d\n",ans1);

}



题外话:

这篇代码找到的时候发现人家也是大二、大一切了1000多道题。暑期训练也是认认真真。不仅智商低。。而且不努力。好好学习T-T

0 0
原创粉丝点击