//对数组排序后,对于边相同并且边的两端不在一个集合内的一定是等效边或者必加边,
//第一数数,第二合并集合
#include<stdio.h>
#include<stdlib.h>
#define N 110000
int pre[N];
struct node {
int x,y,w;
}ma[N];
int findd(int x) {
if(x!=pre[x])
pre[x]=findd(pre[x]);
return pre[x];
}
int cmp(const void *a,const void*b) {
return (*(struct node *)a).w-(*(struct node *)b).w;
}
int main() {
int n,m,i,j,k,cou,t,a,b,c;
scanf("%d",&t);
while(t--) {
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
pre[i]=i;
for(i=0;i<m;i++)
scanf("%d%d%d",&ma[i].x,&ma[i].y,&ma[i].w);
qsort(ma,m,sizeof(ma[0]),cmp);
cou=0;
c=0;k=0;j=0;
for(i=0;i<m&&k<n-1;) {
while(ma[c].w==ma[j].w) {
a=findd(ma[j].x);
b=findd(ma[j].y);
if(a!=b)
cou++;
j++;
}
j=i;
while(ma[c].w==ma[j].w) {
a=findd(ma[j].x);
b=findd(ma[j].y);
if(a!=b) {
pre[b]=a;
k++;
}
j++;
}
c=j;
i=j;
}
printf("%d\n",cou);
} return 0;
}

fzu 2087并查集的运用求最小生成树的等效边的更多相关文章

  1. FZU 2112 并查集、欧拉通路

    原题:http://acm.fzu.edu.cn/problem.php?pid=2112 首先是,票上没有提到的点是不需要去的. 然后我们先考虑这个图有几个连通分量,我们可以用一个并查集来维护,假设 ...

  2. UVaLive 7456 Least Crucial Node (并查集+暴力 或者 求割点)

    题意:求标号最小的最大割点.(删除该点后,指定点#sink能到达的点数减少最多). 析:由于不知道要去掉哪个结点,又因为只有100个结点,所以我们考虑用一个暴力,把所有的结点都去一次,然后用并查集去判 ...

  3. POJ 1562 Oil Deposits (并查集 OR DFS求联通块)

    Oil Deposits Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14628   Accepted: 7972 Des ...

  4. 九度OJ 1024 畅通工程 -- 并查集、贪心算法(最小生成树)

    题目地址:http://ac.jobdu.com/problem.php?pid=1024 题目描述:     省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但 ...

  5. Codeforces Round #260 (Div. 1) C. Civilization 并查集,直径

    C. Civilization Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/455/probl ...

  6. BZOJ_1998_[Hnoi2010]Fsk物品调度_并查集+置换

    BZOJ_1998_[Hnoi2010]Fsk物品调度_并查集+置换 Description 现在找工作不容易,Lostmonkey费了好大劲才得到fsk公司基层流水线操作员的职位.流水线上有n个位置 ...

  7. codeforces 811 E. Vladik and Entertaining Flags(线段树+并查集)

    题目链接:http://codeforces.com/contest/811/problem/E 题意:给定一个行数为10 列数10w的矩阵,每个方块是一个整数, 给定l和r 求范围内的联通块数量 所 ...

  8. 洛谷:P1783 海滩防御(二分+并查集 最短路 最小生成树)

    题意: 给定长度为N的海滩,然后有M做防御塔,给出每座塔的位置Xi,到海岸的距离Yi. 求防御塔上最小观测半径Ri,使得海滩被封锁. 思路:要使左边界和右边界连通. 很nice,可以二分+并查集做. ...

  9. hdu 1863 畅通工程 (并查集+最小生成树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863 畅通工程 Time Limit: 1000/1000 MS (Java/Others)    M ...

随机推荐

  1. Linux批量生成生成帐户脚本,随机密码

    此脚本应用于生产环境下生成帐户,也可生成成百上千个密码相同的帐户.脚本代码如下: 批量生成: #!/bin/bash for name in tom jerry joe jane do useradd ...

  2. spring拦截器和注解处理日志操作

    整体思想:通过拦截器拦截所有的请求,处理含有自定义注解的方法,通过request得到需要的参数. 拦截器代码: package com.zktx.platform.log2; import java. ...

  3. string[][]和string[,] 以及 int[][]和int[,]

    string[][]和string[,] http://www.codewars.com/kata/56f3a1e899b386da78000732/train/csharp Write a func ...

  4. hibernate初步2

    Hibernate级联设计 数据库表之间的关系(主要关系有一对多.一对一.多对多)主要是从如下三个方面体现出来: 1.表体设计 2.实体类的设计 3.配置文件 以下是一些重要级联设计参数属性介绍: c ...

  5. Socket之shutdown()用法

    通常来说,socket是双向的,即数据是双向通信的.但有些时候,你会想在socket上实现单向的socket,即数据往一个方向传输. 单向的socket便称为半开放Socket.要实现半开放式,需要用 ...

  6. 阿里云centos系统上安装ftp

    最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...

  7. [Apple开发者帐户帮助]三、创建证书(2)创建开发者ID证书

    您可以使用开发人员帐户或Xcode 创建最多五个开发者ID应用程序证书和最多五个开发人员ID安装程序证书.(要在Xcode中创建开发者ID证书,请转到Xcode帮助中的管理签名证书.) 所需角色:帐户 ...

  8. PHP获取远程和本地文件信息(汇总)

    1.PHP filesize() 函数filesize() 函数返回指定文件的大小.若成功,则返回文件大小的字节数.若失败,则返回 false 并生成一条 E_WARNING 级的错误. 但是只能获取 ...

  9. angular js 正序倒叙

      <!DOCTYPE html>   <html lang="en">   <head>   <meta charset="U ...

  10. android AIDL示例代码(mark下)

    1.demo结构图 2.ipcclient Book类. package com.mu.guoxw.ipcclient; import android.os.Parcel; import androi ...