zoukankan      html  css  js  c++  java
  • HDU 5624 KK's Reconstruction

    这题目测是数据水了。我这种暴力写法显然是可以卡超时的。

    假设有2000个点,15000条边,前面10000条不能构成树,后面5000条可以,这种数据显然可以卡超时。

    #include <stdio.h>
    #include <algorithm>
    #include <string.h>
    #include <queue>
    #include <stack>
    #include <map>
    #include <vector>
    using namespace std;
    
    const int maxn = 2000 + 10;
    const int maxm = 15000 + 10;
    const int inf = 0x7fffffff;
    int T;
    int n, m;
    struct Edge
    {
        int u;
        int v;
        int id;
        int val;
    }e[maxm];
    int fa[maxn];
    
    
    bool cmp(const Edge&a, const Edge&b)
    {
        return a.val<b.val;
    }
    
    void read()
    {
        scanf("%d%d", &n, &m);
        for (int i = 1; i <= m; i++)
            scanf("%d%d%d", &e[i].u, &e[i].v, &e[i].val);
        sort(e + 1, e + 1 + m, cmp);
    }
    
    int Find(int x)
    {
        if (x != fa[x]) fa[x] = Find(fa[x]);
        return fa[x];
    }
    
    void work()
    {
        int ans = inf;
        int i, j;
        int cnt;
        for ( i = 1; i <= m; i++)
        {
            for ( j = 1; j <= n; j++) fa[j] = j;
            cnt = n;
            for ( j = i; j <= m; j++)
            {
                int fu = Find(e[j].u);
                int fv = Find(e[j].v);
                if (fu == fv) continue;
                fa[fu] = fv; cnt--;
                if (cnt == 1)
                {
                    ans = min(ans, e[j].val - e[i].val);
                    break;
                }
            }
            if (cnt != 1) break;
        }
    
        if (ans == inf) ans = -1;
        printf("%d
    ", ans);
    }
    
    int main()
    {
        scanf("%d", &T);
        while (T--)
        {
            read();
            work();
        }
        return 0;
    }
  • 相关阅读:
    linux性能调优总结
    mongodb之sharding原理
    Centos6.6搭建mongodb3.2.6副本集分片
    vmstat 命令详解
    SaltStack之Targeting
    saltstack之pillar详解
    saltstack之grains详解
    saltstack之yum简单部署lnmp
    Redis监控工具
    PHP实现选择排序
  • 原文地址:https://www.cnblogs.com/zufezzt/p/5189056.html
Copyright © 2011-2022 走看看