zoukankan      html  css  js  c++  java
  • HDU

    题目大意:给你个无向图,每条边非黑即白,判断其生成树能否包含斐波那契数条白边

    具体思路:把边赋一个权值(白边为1,黑边为0),做一遍最小生成树,做一遍最大生成树

    然后我们就可以知道至少要几条白边,至多要几条白边

    然后判一下这个区间内有没有斐波那契数就好了

    AC代码

    #include<bits/stdc++.h>
    using namespace std;
    int T,i,j,n,fa[200000],x[200000],y[200000],m,fib[200000];
    pair<int,int> a[200000];
    int ask(int x){if(fa[x]==x)return x;else return fa[x]=ask(fa[x]);}
    int main()
    {
        scanf("%d",&T);
        fib[1]=1,fib[2]=2;
        for (i=3;i<=1000;i++)fib[i]=fib[i-1]+fib[i-2];
        int t;
        for (t=1;t<=T;t++)
        {
            printf("Case #%d: ",t);
            scanf("%d%d",&n,&m);
            for (i=1;i<=n;i++)fa[i]=i;
            for (i=1;i<=m;i++)
                scanf("%d%d%d",&x[i],&y[i],&a[i].first),a[i].second=i;
            sort(a+1,a+1+m);
            int tot=0,totw1=0;
            for (i=1;i<=m;i++)
            {
                int fx=ask(x[a[i].second]),fy=ask(y[a[i].second]);
                if(fx!=fy)
                {
                    tot++;
                    if(a[i].first)totw1++;
                    fa[fx]=fy;
                }
            }
            if(tot!=n-1)
            {
                puts("No");
                continue;
            }
            for (i=1;i<=n;i++)fa[i]=i;
            int totw2=0;
            for (i=m;i>=1;i--)
            {
                int fx=ask(x[a[i].second]),fy=ask(y[a[i].second]);
                if(fx!=fy)
                {
                    if(a[i].first)totw2++;
                    fa[fx]=fy;
                }
            }
            bool answer=false;
            for (i=1;i<=1000;i++)if(totw1<=fib[i]&&fib[i]<=totw2)
            {
                answer=true;
                break;
            }
            if(answer)puts("Yes");else puts("No");
        }
        return 0;
    }
  • 相关阅读:
    脏数据
    LeetCode之Sort List
    COCOS2D-X FRAME动画创作随笔
    基于OpenCV性别识别
    Twitter 新一代流处理工具——Heron 该纸币Storm Limitations
    oracle设备
    苏州面对公司发布
    Weblogic监控指标
    mysql TIME_WAIT
    weblogic监控
  • 原文地址:https://www.cnblogs.com/Orange-User/p/7751597.html
Copyright © 2011-2022 走看看