首先计算图的联通情况,如果图本身不联通一定不会出现生成树,输出"NO",之后清空,加白边,看最多能加多少条,清空,加黑边,看能加多少条,即可得白边的最大值与最小值,之后判断Fibonacci数是否在这两个之间,如果是输出yes,否则no。

然而,,然而,,我看的题解有问题!!!!!调了俩小时愣是没找出错误来,,然后把题解交了发现过不了,,,,真是够了。,。,。,

第二天上午终于A了,,满分程序:

 #include <cstdio>
#include <cstring>
#include <algorithm> struct data {
int x1;
int y1;
int z1;
};
const int maxn = + ;
int father[maxn];
int f[maxn];
data p[maxn];
int T;
int n, m; bool cmp(data aa, data bb) {
return (aa.z1 < bb.z1);
} int getfather(int x) {
if (father[x] == x) return x;
return (father[x] = getfather(father[x]));
} bool solve (void) {
int cur = n;
for (int i = ; i <= m; i++) {
int tx = getfather(p[i].x1);
int ty = getfather(p[i].y1);
if (tx != ty) {
father[tx] = ty;
cur--;
}
}
if (cur > ) return ;
return ;
} int main () {
f[] = ;
f[] = ;
for (int i = ; i <= ; i++) {
f[i] = f[i-] + f[i-];
}
scanf("%d", &T);
for (int kase = ; kase <= T; kase++) {
printf("Case #%d: ", kase);
scanf("%d %d", &n, &m);
for (int i = ; i <= n; i++) father[i] = i;
for (int i = ; i <= m; i++) scanf("%d %d %d", &p[i].x1, &p[i].y1, &p[i].z1);
std :: sort(p + , p + m + , cmp);
if (solve()) printf("No\n");
else {
for (int i = ; i <= n; i++) father[i] = i;
int smin = ;
for (int i = ; i <= m; i++) {
int tx = getfather(p[i].x1);
int ty = getfather(p[i].y1);
if (tx != ty) {
father[tx] = ty;
if (p[i].z1 == ) smin++;
}
}
int smax = ;
for (int i = ; i <= n; i++) father[i] = i;
for (int i = m; i >= ; i--) {
int tx = getfather(p[i].x1);
int ty = getfather(p[i].y1);
if (tx != ty) {
father[tx] = ty;
if (p[i].z1 == ) smax++;
}
}
bool flag = ;
for (int i = ; i <= ; i++)
if (smin <= f[i] && smax >= f[i]) {
flag = ;
break;
}
if (flag) printf("Yes\n");
else printf("No\n");
}
}
return ;
}

hdu 4786 Fibonacci Tree 乱搞 智商题目 最小生成树的更多相关文章

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

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

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

    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. hdoj 4786 Fibonacci Tree【并查集+最小生成树(kruskal算法)】

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

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

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

  9. HDU 5167 Fibonacci 筛法+乱搞

    题目链接: hdu: http://acm.hdu.edu.cn/showproblem.php?pid=5167 题意: 给你一个x,判断x能不能由斐波那契数列中的数相乘得到(一个数可以重复使用) ...

随机推荐

  1. 用Arcade表达式添加标签

    Arcade表达式是轻量级的脚本语言,我们可以通过全局变量$feature获取要素属性.比如说,要为城市添加标签,利用CITY_NAME列,我们可以编写语句:$feature.CITY_NAME.Ar ...

  2. Vue学习之路第五篇:v-bind

    v-bind:是Vue提供的用于绑定html属性的指令. html中常见的属性有:id.class.src.title.style等,他们都是以 名称/值对 的形式出现,如:id="firs ...

  3. PHP下的Oauth2.0尝试 - OpenID Connect

    OpenID Connect OpenID Connect简介 OpenID Connect是基于OAuth 2.0规范族的可互操作的身份验证协议.它使用简单的REST / JSON消息流来实现,和之 ...

  4. python_函数传递列表

    '''#创建一个空列表,包含一些要打印的设计unprinted_designs = ['iphone','robot','books']completed_modles = [] #模拟打印每个设计, ...

  5. Git:Git入门及基本命令

    Git的结构: Git和代码托管中心 局域网环境下: 1)GitLab服务器 外网环境下: 2)github 3)码云 代码托管中心的任务:维护远程库 本地库和远程库的交互 团队内部协作 跨团队协作 ...

  6. C 语言中函数的跳转

    1.同一个函数内,可以使用goto语句: eg: void  text_1( void ) { char i=0; a : i++; printf ( " text_1 = %d \r\n& ...

  7. RabbitMQ学习总结(5)——发布和订阅实例详解

    一.Publish/Subscribe(发布/订阅)(using the Java Client) 在前面的教程中,我们创建了一个work Queue(工作队列).工作队列背后的假设是每个任务是交付给 ...

  8. 2015 Multi-University Training Contest 5 hdu 5349 MZL's simple problem

    MZL's simple problem Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Oth ...

  9. Apache Mahout 0.9、10.1、11. CardinalityException: Required cardinality 60 but got 29

      我们可以使用Apache Mahout来快速创建高效扩展性又好的机器学习应用.Mahout结合了诸如H2O算法.Scala.Spark和Hadoop MapReduce等模块,为开发人员提供了一个 ...

  10. 不用while if 循环求 1到n的和,还用到了!!这样的运算符

    很好的题目.开始我也没有想出来. 不用while if 循环求 1到n的和 给了很多种解法,第一种是构造函数,然后累加static变量 第二种是虚函数,有父类子类,父类的结束,然后用 !!n来让 n不 ...