假设这张图能够形成具有k条白边的生成树,

则易证k一定形成一个连续的区间[a,b],中间一定不会断开。要是断开……tm怎么可能。

所以求出a,b就好啦,人家都给你把白边赋成1了,直接跑一下最小生成树,再跑一下最大生成树即可咯。

#include<cstdio>
#include<algorithm>
using namespace std;
#define N 100010
struct Edge{
int u,v,w;
}edges[N];
bool cmp(const Edge &a,const Edge &b){
return a.w<b.w;
}
bool cm2(const Edge &a,const Edge &b){
return a.w>b.w;
}
int T,n,m,a[1010],mm;
int fa[N];
int findroot(int x){
return x==fa[x] ? x : fa[x]=findroot(fa[x]);
}
int kruscal(){
for(int i=1;i<=n;++i){
fa[i]=i;
}
int tot=0,sum=0;
for(int i=1;i<=m;++i){
int f1=findroot(edges[i].u),f2=findroot(edges[i].v);
if(f1!=f2){
fa[f1]=f2;
++tot;
sum+=edges[i].w;
if(tot==n-1){
return sum;
}
}
}
return -1;
}
int main(){
// freopen("f.in","r",stdin);
scanf("%d",&T);
a[1]=1; a[2]=2;
for(int i=3;;++i){
a[i]=a[i-1]+a[i-2];
if(a[i]>100000){
mm=i-1;
break;
}
}
for(int zu=1;zu<=T;++zu){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;++i){
scanf("%d%d%d",&edges[i].u,&edges[i].v,&edges[i].w);
}
sort(edges+1,edges+m+1,cmp);
int minn=kruscal();
sort(edges+1,edges+m+1,cm2);
int maxx=kruscal();
if(minn==-1 || maxx==-1){
printf("Case #%d: No\n",zu);
continue;
}
bool flag=0;
for(int i=1;i<=mm;++i){
if(a[i]>=minn && a[i]<=maxx){
flag=1;
printf("Case #%d: Yes\n",zu);
break;
}
}
if(!flag){
printf("Case #%d: No\n",zu);
}
}
return 0;
}

最新文章

  1. 9款一键快速搭建PHP运行环境的好工具
  2. 学习OpenStack之 (3):Devstack Screen 使用技巧
  3. 安装.NET Framework后程序无法启动的错误处理
  4. win10 1607 密匙
  5. String之“==”与equals
  6. 问题分析探讨 --&gt; 大约有700W数据的表,把当天的10W数据select导入新表,整个原来的表就锁死
  7. 使用Apache JMeter进行SQL优化性能测试
  8. RedHat6.5网卡问题总结
  9. 应用之星在线app开发平台,菜鸟也会做应用
  10. 自动修改博客CSS样式用的代码
  11. 集合之深入理解HashMap
  12. javascript装饰器模式
  13. emacs 只读打开文件
  14. struts2-第一章-基础用法2
  15. Bypass 360主机卫士SQL注入防御(附tamper脚本)
  16. SQL之CASE WHEN用法详解[1]
  17. Ubuntu Java7 SDK环境变量配置(转)
  18. Android——代码中使用颜色值
  19. Swift3 隐藏状态栏,修改状态栏颜色
  20. JIRA python篇之统计产品尚未解决的bugs

热门文章

  1. bzoj 1856 组合
  2. 内存分配器memblock【转】
  3. Linux时间子系统之八:动态时钟框架(CONFIG_NO_HZ、tickless)【转】
  4. centos 安装flash
  5. canvas制作柱形图/折线图/饼状图,Konva写动态饼状图
  6. Shell——Linux/Mac 终端复制文件内容到剪切板
  7. Eclipse+Pydev+numpy+scipy+matplotlib
  8. 【总结】IE和Firefox的Javascript兼容性总结
  9. JAVA中的数据存储(堆及堆栈)
  10. PHP设计模式二-------单例模式