Fibonacci Tree
hdu4786:http://acm.hdu.edu.cn/showproblem.php?pid=4786
题意:给你一个无向图,然后其中有的边是白色的有的边是黑色的。然后问你是否存在一棵生成树,在这课生成树上白色边的数量是一个斐波那契数。
题解:完全没有那样的思想,一道现场水题,就是不会啊,实力太弱 啊。注定打铁啊。这一题是这样的,采用极端思维:就是分别用白色和黑色优先的边去求生成树,得到一个白色数量的区间。这里需要理解的是,白色边的数目,可以在这个区间内变化。也就是构成生成树的白色边的数量在这个区间内,如果这个区间内的数没有一个是斐波那契数,那么就不可能了。同时处理出1e5以内的斐波那契数。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
const int N=2e5+;
int fa[N],f[],vis[N];
int n,m,u,v,w;
struct Node{
int u,v;
int w;
bool operator<(const Node a)const {
return w>a.w;
}
}edge1[N];
struct Node1{
int u,v;
int w;
bool operator<(const Node1 a)const {
return w<a.w;
}
}edge2[N];
void init(){
for(int i=;i<=n;i++)
fa[i]=i;
}
int Find(int x){
int s;
for(s=x;s!=fa[s];s=fa[s]);
while(x!=s){
int temp=fa[x];
fa[x]=s;
x=temp;
}
return s;
}
int solve1(){//黑色优先
int ct=,num=;
for(int i=;i<=m;i++){
int u=Find(edge1[i].u);
int v=Find(edge1[i].v);
if(u!=v){
fa[u]=v;
if(edge1[i].w==)
ct++;
num++;
}
if(num==n-)
return ct;
}
return ;
}
int solve2(){
init();
int ct=,num=;
for(int i=;i<=m;i++){
int u=Find(edge2[i].u);
int v=Find(edge2[i].v);
if(u!=v){
fa[u]=v;
if(edge2[i].w==)
ct++;
num++;
}
if(num==n-)
return ct;
}
return ;
}
int main(){
int T,tt=;
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&m);
init();
for(int i=;i<=m;i++){
scanf("%d %d %d",&u,&v,&w);
edge1[i].u=u;edge1[i].v=v;edge1[i].w=w;
edge2[i].u=u;edge2[i].v=v;edge2[i].w=w;
}
sort(edge1+,edge1+m+);
sort(edge2+,edge2+m+);
int ll=solve2();
int rr=solve1();
memset(f,,sizeof(f));
memset(vis,,sizeof(vis));
f[]=;f[]=;
for(int i=;i<=;i++){
f[i]=f[i-]+f[i-];
vis[f[i]]=;
}
bool flag=false;
for(int i=ll;i<=rr;i++)
if(vis[i]){
flag=true;
break;
}
if(flag)printf("Case #%d: Yes\n",tt++);
else
printf("Case #%d: No\n",tt++);
}
}
Fibonacci Tree的更多相关文章
- 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 (2013ACMICPC 成都站 F)
http://acm.hdu.edu.cn/showproblem.php?pid=4786 Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others) ...
- hdoj 4786 Fibonacci Tree【并查集+最小生成树(kruskal算法)】
Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- Fibonacci Tree(最小生成树,最大生成树)
Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- HDU 4786 Fibonacci Tree 最小生成树
Fibonacci Tree 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=4786 Description Coach Pang is intere ...
- 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(生成树,YY乱搞)
http://acm.hdu.edu.cn/showproblem.php? pid=4786 Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others ...
- POJ 4786 Fibonacci Tree
Fibonacci Tree Time Limit: 2000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ...
- 【2013 ICPC亚洲区域赛成都站 F】Fibonacci Tree(最小生成树+思维)
Problem Description Coach Pang is interested in Fibonacci numbers while Uncle Yang wants him to do s ...
随机推荐
- java程序员从笨鸟到菜鸟系列
http://blog.csdn.net/csh624366188/article/category/888600
- linux下so动态库一些不为人知的秘密 系列
http://blog.chinaunix.net/uid-27105712-id-3313293.html http://www.cnblogs.com/gulvzhe/archive/2012/0 ...
- Windows与Linux下文件操作监控的实现
一.需求分析: 随着渲染业务的不断进行,数据传输渐渐成为影响业务时间最大的因素.究其原因就是因为数据传输耗费较长的时间.于是,依托于渲染业务的网盘开发逐渐成为迫切需要解决的需求.该网盘的实现和当前市场 ...
- 基于heartbeat的单播方式实现tomcat高可用
1.节点规划 在master.backup节点上添加eth0.eth1两网卡,具体添加过程,参考“基于VMware为CentOS 6.5配置两个网卡” 2.IP规划 master backup e ...
- jQuery各种选择器总结
首先介绍几个简单的: id选择器 $('#p1').html('<font color='red'>nihao</font>); 类选择器:表示页面上所有应用了a样式的标签 $ ...
- Http,Https(SSL)的Url绝对路径,相对路径解决方案Security Switch 4.2的配置和使用 分类: ASP.NET 2014-11-05 12:51 97人阅读 评论(0) 收藏
下载地址1:https://securityswitch.googlecode.com/files/SecuritySwitch%20v4.2.0.0%20-%20Binary.zip 下载地址2:h ...
- 反射+javacsv+scv文件构建资源获取
1.反射之前已经写过,大家可以在http://www.cnblogs.com/myadmin/p/5282628.html中大概了解下.同时请大家指正. javacsv.jar:java中用来处理cs ...
- 第三部分 关于HHibernate中关键字ID的配置
实体类映射中,必须配置一个关键字,对应着数据表的关键字,大多数的实体类也都有一个属性表示类的唯一性,在实体类配置文件(.hbm.xml)中,<id>元素的就是这个作用. 一个完整的ID配置 ...
- Java环境变量批处理文件
缘由 公司需要配置大量的虚机,每个上面都要求安装 JAVA,配置环境变量,所以要求写一个批处理,一键配置环境变量 方式 网上找到了3中方式, 第一种是使用 set设置环境 变量,但是这样设置的只是临时 ...
- 原生Javascript实现控制DIV属性
写在前面: 从事前端工作已有一年之久,因为工作的性质,不太涉及JS方面,所以自己的JS水平一直处于小白阶段,工作闲暇之余,在网上找了一些小项目,希望练练手,促进自己成长.这是第一篇,后续还会有很多记录 ...