zoukankan      html  css  js  c++  java
  • uvalive 3644 X-Plosives

    https://vjudge.net/problem/UVALive-3644

    题意:

    有若干个由两种元素组成的简单化合物,现在把它们装进车里,如果车上有恰好有k种简单化合物并且恰好有k种元素的话,那么就会引发爆炸,所以车上的化合物必须避免满足这个条件。

    现在用一个整数表示元素,每行两个整数表示一个简单化合物,按顺序给出,求出这些化合物中有多少个化合物不能装进车。

    思路:

    如果元素表示点,那么化合物就表示边,要爆炸的条件就是形成环,即为k个点k条边,那么就肯定存在环。直接用并查集判断就好了。

    代码:

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 int par[100005];
     5 
     6 void init(int n)
     7 {
     8     for (int i = 0; i <= n; i++) par[i] = i;
     9 }
    10 
    11 int fin(int x)
    12 {
    13     if (x == par[x]) return x;
    14     else return par[x] = fin(par[x]);
    15 }
    16 
    17 bool unit(int x,int y)
    18 {
    19     x = fin(x);
    20     y = fin(y);
    21 
    22     if (x == y) return 0;
    23 
    24     par[x] = y;
    25 
    26     return 1;
    27 }
    28 
    29 int main()
    30 {
    31     int a,b;
    32 
    33     while (scanf("%d",&a) != EOF)
    34     {
    35         init(100000);
    36 
    37         scanf("%d",&b);
    38 
    39         unit(a,b);
    40 
    41         int ans = 0;
    42 
    43         for (;;)
    44         {
    45             scanf("%d",&a);
    46 
    47             if (a == -1) break;
    48 
    49             scanf("%d",&b);
    50 
    51             if (!unit(a,b))
    52             {
    53                 ans++;
    54             }
    55         }
    56 
    57         printf("%d
    ",ans);
    58     }
    59 
    60     return 0;
    61 }
  • 相关阅读:
    MHA自动切换流程
    手写源码之 简单实现on emit off
    手写源码 -- bind,call,aplly
    多维数组转化为一维数组
    electron+vue中使用nodeJs的fs模块以及上传文件
    制作海报
    vue中引入播放器(百度播放器和腾讯云播放器)
    webpack配置
    webpack
    css样式
  • 原文地址:https://www.cnblogs.com/kickit/p/7682490.html
Copyright © 2011-2022 走看看