zoukankan      html  css  js  c++  java
  • hdu 3038 并查集

    题意:给出多个区间的和,判断数据矛盾的区间有几个,比方说【1,5】 = 10 ,【6.10】 

    = 10, 【1, 10】 = 30,这明显第三个与前面两个矛盾。

    链接:点我

    水题了,val代表到根的和

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<cmath>
     6 #include<queue>
     7 #include<map>
     8 using namespace std;
     9 #define MOD 1000000007
    10 const int INF=0x3f3f3f3f;
    11 const double eps=1e-5;
    12 typedef long long ll;
    13 #define cl(a) memset(a,0,sizeof(a))
    14 #define ts printf("*****
    ");
    15 const int MAXN=200010;
    16 int n,m,tt;
    17 int ans=0;
    18 int f[MAXN];
    19 int val[MAXN];
    20 int find(int x)
    21 {
    22     if(f[x]==-1)    return x;
    23     int temp=find(f[x]);
    24     val[x]+=val[f[x]];
    25     return f[x]=temp;
    26 }
    27 void bing(int x,int y,int w)
    28 {
    29     int t1=find(x);
    30     int t2=find(y);
    31     if(t1!=t2)
    32     {
    33         f[t2]=t1;
    34         val[t2]=val[x]-val[y]+w;
    35     }
    36     else
    37     {
    38         if(val[y]-val[x]!=w)
    39         {
    40             ans++;
    41         }
    42     }
    43 }
    44 int main()
    45 {
    46     int i,j,k;
    47     #ifndef ONLINE_JUDGE
    48     freopen("1.in","r",stdin);
    49     #endif
    50     while(scanf("%d%d",&n,&m)!=EOF)
    51     {
    52         memset(f,-1,sizeof(f));
    53         memset(val,0,sizeof(val));
    54         ans=0;
    55         int u,v,w;
    56         for(i=0;i<m;i++)
    57         {
    58             scanf("%d%d%d",&u,&v,&w);
    59             u-=1;
    60             bing(u,v,w);
    61         }
    62         printf("%d
    ",ans);
    63     }
    64 }
  • 相关阅读:
    git submodule的使用
    Git 工具
    Simple Rtmp Server的安装与简单使用
    Java 获取当前系统的操作系统类型
    OA系统 权限管理的设计流程
    基于角色访问控制的OA系统的设计与实现
    Neo4j:Index索引
    Neo4j Cypher查询语言详解
    win10命令行kill进程
    用BlazeMeter录制JMeter测试脚本
  • 原文地址:https://www.cnblogs.com/cnblogs321114287/p/4487103.html
Copyright © 2011-2022 走看看