zoukankan      html  css  js  c++  java
  • [NOIP2010] 关押罪犯

    题意:

    传送门

    题解:

    贪心+并查集

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    #define ll long long
    #define N 200010
    using namespace std;
    
    int fa[N<<1];
    
    struct Node {
      int x,y,z;
      bool operator < (const Node &a) const {
        return z>a.z;
      }
    }e[N];
    
    int gi() {
      int x=0,o=1; char ch=getchar();
      while(ch!='-' && (ch<'0' || ch>'9')) ch=getchar();
      if(ch=='-') o=-1,ch=getchar();
      while(ch>='0' && ch<='9') x=x*10+ch-'0',ch=getchar();
      return o*x;
    }
    
    int find(int x) {
      return x==fa[x]?x:fa[x]=find(fa[x]);
    }
    
    int main() {
      int n=gi(),m=gi();
      for(int i=1; i<=(n<<1); i++) fa[i]=i;
      for(int i=1; i<=m; i++) {
        int x=gi(),y=gi(),z=gi();
        e[i]=(Node){x,y,z};
      }
      sort(e+1,e+m+1);
      for(int i=1; i<=m; i++) {
        int x=e[i].x,y=e[i].y,xx,yy;
        xx=find(x+n),yy=find(y+n);
        x=find(x),y=find(y);
        if(x==y || xx==yy) {
          printf("%d", e[i].z);
          return 0;
        }
        fa[xx]=y,fa[yy]=x;
      }
      puts("0");
      return 0;
    }
    
  • 相关阅读:
    safeNet
    网店
    微信公众号自定义菜单与回车
    西游记对教育的启发
    zencart资源
    cmd批处理常用符号详解
    div垂直居中
    git工作量统计
    VS2012变化的快捷键:
    sql 树 递归
  • 原文地址:https://www.cnblogs.com/HLXZZ/p/7659509.html
Copyright © 2011-2022 走看看