题目描述

输入输出格式

输入格式:

在实际评测时,将只会有m-1行公路

输出格式:

输入输出样例

输入样例#1:

4 2 5
1 2 6 5
1 3 3 1
2 3 9 4
2 4 6 1
3 4 4 2
输出样例#1:

4
2 1
3 2
5 1
输入样例#2:

4 1 5
1 2 6 5
1 3 3 1
2 3 9 4
2 4 6 1
3 4 4 3
输出样例#2:

3
2 1
4 2
5 2

坑到炸的一句话、。。

二分+kruskal

屠龙宝刀点击就送

#include <algorithm>
#include <cstdio>
#define N 20005 using namespace std;
struct Edge
{
int x,y,z,id;
bool operator<(Edge a)const
{
return z<a.z;
}
}e1[N],e2[N];
struct node
{
int a,b;
bool operator<(node x)const
{
return a<x.a;
}
}ans[N];
int n,k,m,siz,fa[N];
int find_(int x) {return x==fa[x]?x:fa[x]=find_(fa[x]);}
bool check(int x)
{
for(int i=;i<=n;++i) fa[i]=i;
int num=;
for(int i=;i<=m;++i)
{
if(e1[i].z>x) continue;
int fx=find_(e1[i].x),fy=find_(e1[i].y);
if(fx!=fy)
{
num++;
fa[fy]=fx;
}
}
if(num<k) return false;
for(int i=;i<=m;++i)
{
if(e2[i].z>x) continue;
int fx=find_(e2[i].x),fy=find_(e2[i].y);
if(fx!=fy)
{
fa[fy]=fx;
num++;
}
}
if(num==n-) return true;
return false;
}
void get(int x)
{
for(int i=;i<=n;++i) fa[i]=i;
for(int i=;i<=m;++i)
{
if(e1[i].z>x) continue;
int fx=find_(e1[i].x),fy=find_(e1[i].y);
if(fx!=fy)
{
siz++;
fa[fy]=fx;
ans[siz].a=e1[i].id;
ans[siz].b=;
}
}
for(int i=;i<=m;++i)
{
if(e2[i].z>x) continue;
int fx=find_(e2[i].x),fy=find_(e2[i].y);
if(fx!=fy)
{
siz++;
fa[fy]=fx;
ans[siz].a=e2[i].id;
ans[siz].b=;
}
}
}
int main(int argc,char *argv[])
{
scanf("%d%d%d",&n,&k,&m);
int l=,r=,anss;
for(int u,v,w1,w2,i=;i<=m;++i)
{
scanf("%d%d%d%d",&u,&v,&w1,&w2);
e1[i]=(Edge){u,v,w1,i};
e2[i]=(Edge){u,v,w2,i};
r=max(r,w1);
}
sort(e1+,e1+m);
sort(e2+,e2+m);
for(int mid;l<=r;)
{
mid=(l+r)>>;
if(check(mid))
anss=mid,r=mid-;
else l=mid+;
}
printf("%d\n",anss);
get(anss);
sort(ans+,ans++siz);
for(int i=;i<=siz;++i) printf("%d %d\n",ans[i].a,ans[i].b);
return ;
}

最新文章

  1. ABP 索引
  2. 基于Quick-cocos2d-x的资源更新方案 一
  3. String类的equals是如何进行字符串比较的
  4. OC基础--Property
  5. [算法][三轴、六轴、九轴传感器算法分析] 1、分享一个三轴加速计matlab动态可视化脚本
  6. EditText监听键盘输入
  7. Debugging a Parallel Application
  8. MVC开发Markdown编辑器(2)
  9. vim中光标的前进和后退
  10. MyBatis(3.2.3) - hello world
  11. [转] SSH 密钥认证机制
  12. CDialogBar(对话条)和CReBar(伸缩条)的编程
  13. 联想A7600-m刷机心得
  14. Libgdx1.5.3发布
  15. 增量会话对象——DeltaSession
  16. quick-cocos2d-x与 cocos2d-x的关系
  17. css实现中文换行,英文换行,超出省略
  18. CSS文字的跑马灯特效
  19. msf help.
  20. python3:logging模块 输出日志到文件

热门文章

  1. Redis使用的相关问题
  2. UVa 10534 Wavio Sequence (LIS+暴力)
  3. JavaScript-导论
  4. Zjnu Stadium(加权并查集)
  5. PostgreSQL - raise函数打印字符串
  6. SpringBoot用户CRUD
  7. Educational Codeforces Round 65 (Rated for Div. 2) B. Lost Numbers
  8. CodeForces - 851B -Arpa and an exam about geometry(计算几何)
  9. hdu4570-区间dp
  10. mysql8.0数据库忘记密码时进行修改方法