题意:给一张由白边和黑边构成的无向图,求是否存在一个生成树,使白边的数量为一个斐波那契数。

分析:白边权值为1,黑边权值为0。求出该图的最小生成树和最大生成树,若这两个值之间存在斐波那契数,则可以,若不存在或者所给的图不是连通图,则不行。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+5;
typedef long long LL;
set<int> dp; struct Edge{
int u,v,w;
}edge[maxn<<1];
int n,m; bool cmp (const Edge & x,const Edge & y) {
return x.w<y.w;
} bool cmp2(const Edge &x, const Edge &y) {
return x.w>y.w;
} int fa[maxn];
void init()
{
for(int i=0;i<=n;++i) fa[i] = i;
} int Find(int x)
{
return fa[x] ==x ? x: fa[x] = Find(fa[x]);
} void Union(int x,int y)
{
int fx = Find(x), fy = Find(y);
fa[fx] = fy;
} int kruskal()
{
init();
int res = 0, cnt = 0;
for(int i=1,u,v,w;i<=m;++i){
u =edge[i].u, v= edge[i].v, w =edge[i].w;
if(Find(u)!=Find(v)){
Union(u,v);
res += w;
++cnt;
if(cnt>=n-1) break;
}
}
if(cnt<n-1) return -1;
return res;
} int kruskal2()
{
init();
int res = 0, cnt= 0;
for(int i=m,u,v,w;i>=1;--i){
u =edge[i].u, v= edge[i].v, w =edge[i].w;
if(Find(u)!=Find(v)){
Union(u,v);
res += w;
++cnt;
if(cnt>=n-1) break;
}
}
if(cnt<n-1) return -1;
return res;
} int fib[maxn];
int pt; void pre()
{
fib[1] = 1, fib[2] = 2;
dp.insert(1);
dp.insert(2);
int i;
for(i=3;i<maxn;++i){
fib[i] = fib[i-1] + fib[i-2];
dp.insert(fib[i]);
if(fib[i]>100000) break;
}
} int main()
{
int T,cas=1;
scanf("%d",&T);
pre();
while(T--){
scanf("%d %d",&n, &m);
for(int i=1;i<=m;++i){
scanf("%d %d %d",&edge[i].u, &edge[i].v, &edge[i].w);
}
sort(edge+1,edge+m+1,cmp); int t1 = kruskal();
int t2 = kruskal2();
if(t1>t2) swap(t1,t2); printf("Case #%d: ",cas++);
bool f = false;
for(int i=t1;i<=t2;++i){
if(dp.find(i)!=dp.end()){
f = true;
break;
}
}
if(f) printf("Yes\n");
else printf("No\n");
}
return 0;
}

HDU - 4786 Fibonacci Tree (MST)的更多相关文章

  1. hdu 4786 Fibonacci Tree (2013ACMICPC 成都站 F)

    http://acm.hdu.edu.cn/showproblem.php?pid=4786 Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others) ...

  2. HDU 4786 Fibonacci Tree(生成树,YY乱搞)

    http://acm.hdu.edu.cn/showproblem.php? pid=4786 Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others ...

  3. HDU 4786 Fibonacci Tree 最小生成树

    Fibonacci Tree 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=4786 Description Coach Pang is intere ...

  4. HDU 4786 Fibonacci Tree

    Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) P ...

  5. HDU 4786 Fibonacci Tree (2013成都1006题)

    Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  6. hdu 4786 Fibonacci Tree(最小生成树)

    Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  7. 【HDU 4786 Fibonacci Tree】最小生成树

    一个由n个顶点m条边(可能有重边)构成的无向图(可能不连通),每条边的权值不是0就是1. 给出n.m和每条边的权值,问是否存在生成树,其边权值和为fibonacci数集合{1,2,3,5,8...}中 ...

  8. HDU 4786 Fibonacci Tree 生成树

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=4786 题意:有N个节点(1 <= N <= 10^5),M条边(0 <= M <= ...

  9. hdu 4786 Fibonacci Tree 乱搞 智商题目 最小生成树

    首先计算图的联通情况,如果图本身不联通一定不会出现生成树,输出"NO",之后清空,加白边,看最多能加多少条,清空,加黑边,看能加多少条,即可得白边的最大值与最小值,之后判断Fibo ...

随机推荐

  1. 采用std::thread 替换 openmp

    内容转换的,具体详见博客:https://cloud.tencent.com/developer/article/1094617 及对应的code:https://github.com/cpuimag ...

  2. typescript 实现函数重载

    class Demo { // #region 声明 log() : void; log(arg1: string): void; log(arg1: number, arg2: string): v ...

  3. keystore是个嘛东西

    不管是QQ,还是微信,还是支付,涉及到第三方的都的用这个玩意,有时候找不对很坑的 首先我们要区分jks, app,keystore(新建keystoer的文件new就可以了)再进行下一步操作 Ecli ...

  4. UIImage 裁剪图片和等比列缩放图片

    本文转载至 http://blog.csdn.net/cuiweijie3/article/details/9514293 转自 http://www.tedz.me/ios/uiimage-crop ...

  5. Java Web项目--使用Servlet生成一个页面

    为了生成一个servlet对应的网页.我们需要新建一个web.xml,其中将会放置servlet的相关信息.web.xml文件放置在WebContent/WEB-INF/目录下.(我们在Eclipe中 ...

  6. JSP内置对象——session

    sessionsession表示客户端与服务器的一次会话Web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所进过的这段时间,也就是用户浏览这个网站所花费的时间从上述定义中可以看 ...

  7. 从远程(包括ftp,http等协议)地址获取文件流信息

    URL url = new URL("ftp://172.18.251.155:8010/recordsImg/2019-01-28/000008_1548649813267.jpg&quo ...

  8. Android自定义控件之圆形进度条ImageView

    From:http://blog.csdn.net/xiadik/article/details/41648181package com.wangran.beautiful_girl_show.vie ...

  9. 浏览器出现“ net::ERR_BLOCKED_BY_CLIENT”错误的解决方法

    转载自:http://www.dbmng.com/art-2136.html Failed to load resource: net::ERR_BLOCKED_BY_CLIENT错误报告 错误原因: ...

  10. Windows 2012 Server评估版本安装问题处理

    由于工作需要,在微软官方网站下载了一个Windows2012评估版本,地址:http://technet.microsoft.com/zh-cn/evalcenter/hh670538.aspx 在通 ...