hdu 4786 Fibonacci Tree 乱搞 智商题目 最小生成树
首先计算图的联通情况,如果图本身不联通一定不会出现生成树,输出"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 乱搞 智商题目 最小生成树的更多相关文章
- 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 (2013ACMICPC 成都站 F)
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 ...
- hdoj 4786 Fibonacci Tree【并查集+最小生成树(kruskal算法)】
Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 【HDU 4786 Fibonacci Tree】最小生成树
一个由n个顶点m条边(可能有重边)构成的无向图(可能不连通),每条边的权值不是0就是1. 给出n.m和每条边的权值,问是否存在生成树,其边权值和为fibonacci数集合{1,2,3,5,8...}中 ...
- HDU 5167 Fibonacci 筛法+乱搞
题目链接: hdu: http://acm.hdu.edu.cn/showproblem.php?pid=5167 题意: 给你一个x,判断x能不能由斐波那契数列中的数相乘得到(一个数可以重复使用) ...
随机推荐
- 用Arcade表达式添加标签
Arcade表达式是轻量级的脚本语言,我们可以通过全局变量$feature获取要素属性.比如说,要为城市添加标签,利用CITY_NAME列,我们可以编写语句:$feature.CITY_NAME.Ar ...
- Vue学习之路第五篇:v-bind
v-bind:是Vue提供的用于绑定html属性的指令. html中常见的属性有:id.class.src.title.style等,他们都是以 名称/值对 的形式出现,如:id="firs ...
- PHP下的Oauth2.0尝试 - OpenID Connect
OpenID Connect OpenID Connect简介 OpenID Connect是基于OAuth 2.0规范族的可互操作的身份验证协议.它使用简单的REST / JSON消息流来实现,和之 ...
- python_函数传递列表
'''#创建一个空列表,包含一些要打印的设计unprinted_designs = ['iphone','robot','books']completed_modles = [] #模拟打印每个设计, ...
- Git:Git入门及基本命令
Git的结构: Git和代码托管中心 局域网环境下: 1)GitLab服务器 外网环境下: 2)github 3)码云 代码托管中心的任务:维护远程库 本地库和远程库的交互 团队内部协作 跨团队协作 ...
- C 语言中函数的跳转
1.同一个函数内,可以使用goto语句: eg: void text_1( void ) { char i=0; a : i++; printf ( " text_1 = %d \r\n& ...
- RabbitMQ学习总结(5)——发布和订阅实例详解
一.Publish/Subscribe(发布/订阅)(using the Java Client) 在前面的教程中,我们创建了一个work Queue(工作队列).工作队列背后的假设是每个任务是交付给 ...
- 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 ...
- Apache Mahout 0.9、10.1、11. CardinalityException: Required cardinality 60 but got 29
我们可以使用Apache Mahout来快速创建高效扩展性又好的机器学习应用.Mahout结合了诸如H2O算法.Scala.Spark和Hadoop MapReduce等模块,为开发人员提供了一个 ...
- 不用while if 循环求 1到n的和,还用到了!!这样的运算符
很好的题目.开始我也没有想出来. 不用while if 循环求 1到n的和 给了很多种解法,第一种是构造函数,然后累加static变量 第二种是虚函数,有父类子类,父类的结束,然后用 !!n来让 n不 ...