HDU - 4786 Fibonacci Tree (MST)
题意:给一张由白边和黑边构成的无向图,求是否存在一个生成树,使白边的数量为一个斐波那契数。
分析:白边权值为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)的更多相关文章
- hdu 4786 Fibonacci Tree (2013ACMICPC 成都站 F)
http://acm.hdu.edu.cn/showproblem.php?pid=4786 Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others) ...
- HDU 4786 Fibonacci Tree(生成树,YY乱搞)
http://acm.hdu.edu.cn/showproblem.php? pid=4786 Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others ...
- HDU 4786 Fibonacci Tree 最小生成树
Fibonacci Tree 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=4786 Description Coach Pang is intere ...
- HDU 4786 Fibonacci Tree
Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) P ...
- HDU 4786 Fibonacci Tree (2013成都1006题)
Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- hdu 4786 Fibonacci Tree(最小生成树)
Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- 【HDU 4786 Fibonacci Tree】最小生成树
一个由n个顶点m条边(可能有重边)构成的无向图(可能不连通),每条边的权值不是0就是1. 给出n.m和每条边的权值,问是否存在生成树,其边权值和为fibonacci数集合{1,2,3,5,8...}中 ...
- HDU 4786 Fibonacci Tree 生成树
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4786 题意:有N个节点(1 <= N <= 10^5),M条边(0 <= M <= ...
- hdu 4786 Fibonacci Tree 乱搞 智商题目 最小生成树
首先计算图的联通情况,如果图本身不联通一定不会出现生成树,输出"NO",之后清空,加白边,看最多能加多少条,清空,加黑边,看能加多少条,即可得白边的最大值与最小值,之后判断Fibo ...
随机推荐
- UNMET PEER DEPENDENCY @angular/common@2.3.1
install of angular-cli results in unmeet peer dependencies. OSX 10.11.6node v6.9.1npm v3.10.8 [sudo] ...
- Android5.0新特性-Material Design
概述 2014年,Google携Android5.X重装归来.全新的UI设计和更加优化的性能,令开发人员眼前一亮 安装和配置Android5.0开发环境 开发Android还得靠AS.下载地址 htt ...
- ios开发之 -- Swap file ".Podfile.swp" already exists!
- iOS 开发之 -- UDID和UUID的详解
老实说,搞了几年的ios开发了,对基础的概念,还是不牢固,整天都是为了赶进度而码代码,这里记录一下这两者的区别: UDID的全名为 Unique Device Identifier :设备唯一标识符. ...
- Docker1.12 + Swarm 构建动态微服务应用
导读 我们在之前提到过一个示例,即一款由前端与多项后端服务共同构成的微服务应用.其中前端为Traefik HTTP代理,负责将各项请求路由至后端服务.而后端则非常简单,是一套基于Go的HTTP Web ...
- linux的/etc/hosts的作用
转自:http://blog.chinaunix.net/uid-28559065-id-4145820.html linux /etc/hosts文件作用 分类: LINUX linux /e ...
- kafka 相关配置
kafka主要配置包括三类:broker configuration,producer configuration and consumer configuration. Broker Config ...
- vue 阻止表单默认的提交事件
form <form autocomplete="off" @submit.prevent="onSubmit"> <input type=& ...
- 170315、spring:@Autowired等注解的别样玩法
适用场景: 1.IOC容器完成启动就想加载进来的数据 2.多个已经定义好的组件,想在使用的时候通过一行代码就全部拿到 3.等等.... 联想:@Autowired.@Resources等也可以类似使用 ...
- 160606、springmvc中使用Spring Mobile
springmobile特点: 1.客户端设备识别:识别结果只有3种类型:NORMAL(非手机设备).MOBILE(手机设备).TABLET(平板电脑). 2.网站偏好设置:Spring 通过设备识别 ...