zoukankan      html  css  js  c++  java
  • 10099 The Tourist Guide

    题意:给出n的城市m条通道,然后每条通道最大的承载人数给出来了,然后给出起点和终点以及要搭载的人数,问最少要走多少次才能把全部游客送到目的地

    因为导游每次都要跟团,所以每条交通道路搭载的最大人数要减1= =

    克鲁斯卡尔算法,就会排序的时候按照运输人数的从大到小排序,然后当起点和终点在一个联通分支时即可

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int maxn=10000;
    int n,m;
    int p[maxn];
    struct node
    {
        int u,v,num;
    };
    bool cmp(node a,node b)
    {
        return a.num>b.num;
    }
    void init()
    {
        for(int i=1;i<=n;i++)
        p[i]=i;
    }
    int find(int x)
    {
        return p[x]==x ? x :find(p[x]);
    }
    node a[maxn];
    int main()
    {
        int t=0;
        while(scanf("%d %d",&n,&m)!=EOF)
        {
            if(!n&&!m) 
            break;
            init();
            for(int i=0;i<m;i++)
            {
                scanf("%d %d %d",&a[i].u,&a[i].v,&a[i].num);
            }
            sort(a,a+m,cmp);
            int s,e,sum;
            scanf("%d %d %d",&s,&e,&sum);
            int k=0;
            for(int i=0;i<m;i++)
            {
                int fx=find(a[i].u);
                int fy=find(a[i].v);
                if(fx!=fy)
                p[fx]=fy;
                if(find(s)==find(e))
                {
                    k=i;
                    break;
                }
            } 
            int num=a[k].num;
            num--; 
            int ans;
            if(sum%num==0)
            ans=sum/num;
            else
            ans=sum/num+1;
            printf("Scenario #%d
    ",++t);
            printf("Minimum Number of Trips = %d
    
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    278.First Bad Version
    277. Find the Celebrity
    256.Paint House
    276. Paint Fence
    275. H-Index II
    274. H-Index
    273. Integer to English Words
    272. Closest Binary Search Tree Value II
    270. Closest Binary Search Tree Value
    271. Encode and Decode Strings
  • 原文地址:https://www.cnblogs.com/NaCl/p/9580150.html
Copyright © 2011-2022 走看看