zoukankan      html  css  js  c++  java
  • 图论专题1考试Problem1

    Problem 1. bricks
    Input file: bricks.in
    Output file: bricks.out
    Time limit: 1 second
    jyb 在BUAA 天天被大神虐,所以只能去搬砖了。
    终于在2019 年的夏天,菜菜的jyb 找不到工作,真的去工地搬砖了。jyb 的工头cky 是一个很麻烦的人,他
    会让jyb 按某种方式搬砖,还问会问一些奇怪的问题。
    现在有n 块砖,m 次操作。操作有两种:
    1. M x y 把编号为x 的砖所在的一摞砖搬到编号为y 的砖所在的一摞砖的上面。如果x 和y 在同一摞砖则
    忽略这个操作。(最初,每块砖都是单独一摞)
    2. C x 询问x 下面压着多少块砖。
    jyb 搬砖实在是太累了,想请你帮忙回答一下cky 工头的询问。
    Input
    第1 行,2 个整数n;m,表示一共有多少块砖以及有多少操作。
    接下来m 行,每行一个操作,操作表示形式与前文一致。
    Output
    对于每次询问操作,输出答案

    bricks.in

    6 6
    M 1 6
    C 1
    M 2 4
    M 2 6
    C 3
    C 4

    bricks.out

    1
    0
    2

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=10000010;
    int father[maxn];
    int n,m;
    char opt[maxn];
    int size[maxn];
    int down[maxn],up[maxn];
    int x,y;
    int get(int x)
    {
        int t;
        if(father[x]!=x)
        {
            t=father[x];
            father[x]=get(father[x]);
            up[x]+=up[t];
        }
        return father[x];
    }
    void merge(int x,int y)
    {
        x=get(x);
        y=get(y);
        if(x!=y)
        {
            father[y]=x;
            up[y]=down[x];
            down[x]+=down[y];
        }
    }
    int main()
    {
        freopen("bricks.in","r",stdin);
        freopen("bricks.out","w",stdout);
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
        {
            father[i]=i;
            down[i]=1;
            up[i]=0;
        }
        for(int i=1;i<=m;i++)
        {
            scanf("%s",opt);
            if(opt[0]=='C')
            {
                scanf("%d",&x);
                printf("%d
    ",down[get(x)]-up[x]-1);
            }
            else
            {
                scanf("%d%d",&x,&y);
                merge(x,y);
            }
        }
        return 0;
    }

     

  • 相关阅读:
    WinCE 手机互联
    Android 之 getSharedPreferences 和 getPreferences
    Android 之 ListView 点击响应代码?
    Android 之 selector
    昨天晚上被 Android 手机上的广告程序折磨了
    今天终于将第一个 Android NDK 程序编译、运行成功
    Android 4.0.1 源代码编译
    The connection to adb is down, and a severe error has occured.
    成绩转换
    兄弟郊游问题
  • 原文地址:https://www.cnblogs.com/LJB666/p/10627504.html
Copyright © 2011-2022 走看看