hdu1598 find the most comfortable road 並查集+貪心

來源:互聯網
上載者:User

題目連結:here

題意。。。雖然題目是英文。。。但是題都是中文。。這裡就不多叨叨了。。。。

分析:

主要運用了並查集,和貪心,先把所有公路的速度,由小到大排序,然後一條一條的取,最後所有公路差的最大值就是結果。

代碼:

#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int maxn = 205;const int maxm = 1005;const int inf = (0x7f7f7f7f);#define min(a,b)    ((a)<(b)?(a):(b))int n, m, s, t;int ans;int fa[maxn];struct Edge{    int s, e, speed;}edge[maxm];int cmp(Edge a, Edge b){    return a.speed < b.speed;}int find(int x){    while (fa[x] != x) x = fa[x];    return x;}int main(){    while (scanf("%d %d", &n, &m) != EOF)    {        int i, j;        for (i=0; i<m; i++)        {            scanf("%d %d %d", &edge[i].s, &edge[i].e, &edge[i].speed);        }        sort(edge, edge+m, cmp);        int q;        scanf("%d", &q);        while (q--)        {            scanf("%d %d", &s, &t);            int min = inf;            for (i=0; i<m; i++)    //枚舉            {                for (j=1; j<=n; j++) fa[j] = j;                for (j=i; j<m; j++)                {                    int fx = find(edge[j].s);                    int fy = find(edge[j].e);                    if (fx != fy) fa[fx] = fy;                    if (find(s) == find(t))                    {                        min = min(min, edge[j].speed - edge[i].speed);                        break;                    }                }            }            if (min == inf) puts("-1");            else printf("%d\n", min);        }    }    return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.