zoukankan      html  css  js  c++  java
  • NOIP 2010 关押罪犯(并查集)

    https://www.luogu.org/problemnew/show/P1525

     1 #include<cstdio>
     2 #include<algorithm>
     3 using namespace std;
     4 struct c{
     5     int x,y,z;
     6 }f[100005];
     7 int n, m, a[20005], b[20005];
     8 bool cmp(c a,c b){
     9     return a.z>b.z;
    10 }
    11 int find(int x){
    12     if(a[x]==x) return x;
    13     a[x]=find(a[x]);
    14     return a[x];
    15 }
    16 void ad(int x,int y){
    17     x=find(a[x]);
    18     y=find(a[y]);
    19     a[x]=y;
    20 }
    21 bool check(int x,int y){
    22     x=find(x);
    23     y=find(y);
    24     if(x==y) return true;
    25     return false;
    26 }
    27 int main(){
    28     scanf("%d%d",&n,&m);
    29     for(int i=1; i<=n; i++) a[i]=i;
    30     for(int i=1; i<=m; i++)
    31         scanf("%d%d%d",&f[i].x,&f[i].y,&f[i].z);
    32     sort(f+1,f+m+1,cmp);
    33     for(int i=1; i<=m+1; i++){
    34         if(check(f[i].x,f[i].y)){
    35             printf("%d",f[i].z);
    36             break;
    37         }
    38         else{
    39             if(!b[f[i].x]) b[f[i].x]=f[i].y;
    40             else    ad(b[f[i].x], f[i].y);
    41             if(!b[f[i].y]) b[f[i].y]=f[i].x;
    42             else    ad(b[f[i].y], f[i].x);
    43         }
    44     }
    45     return 0;
    46 }
    "Hello World!"
  • 相关阅读:
    Promise
    ajax基础
    flex布局的盒子模型
    css3核心模块
    响应式开发
    HTML5标签及表单
    JS面向对象编程
    JS面向对象的编程
    ES5构造函数与ES6类
    类欧几里得算法
  • 原文地址:https://www.cnblogs.com/Aze-qwq/p/9337821.html
Copyright © 2011-2022 走看看