zoukankan      html  css  js  c++  java
  • 洛谷P2256 一中校运会之百米跑

    题目背景

    在一大堆秀恩爱的**之中,来不及秀恩爱的苏大学神踏着坚定(?)的步伐走向了100米跑的起点。这时苏大学神发现,百米赛跑的参赛同学实在是太多了,连体育老师也忙不过来。这时体育老师发现了身为体育委员的苏大学神,便来找他帮忙。可是苏大学神需要热身,不然跑到一半就会抽(筋)、于是他就找到了你。。。如果你帮助体育老师解决了问题,老师就会给你5个积分。

    题目描述

    假设一共有N(2<=N<=20000)个参赛选手。(尼玛全校学生都没这么多吧)

    老师会告诉你这N个选手的名字。

    接着会告诉你M(1<=M<=1000000)句话,即告诉你学生A与学生B在同一个组里。

    如果学生A与学生B在同一组里,学生B与学生C也在同一组里,就说明学生A与学生C在同一组。

    然后老师会问你K(1<=K<=1000000)句话,即学生X和学生Y是否在同一组里。

    若是则输出"Yes.",否则输出"No."

    输入输出格式

    输入格式:

    第一行输入N和M。

    接下来N行输入每一个同学的名字。

    再往下M行每行输入两个名字,且保证这两个名字都在上面的N行中出现过,表示这两个参赛选手在同一个组里。

    再来输入K。

    接下来输入K个体育老师的询问。

    输出格式:

    对于每一个体育老师的询问,输出"Yes."或"No."。

    输入输出样例

    输入样例#1:
    10 6
    Jack
    Mike
    ASDA
    Michel
    brabrabra
    HeHe
    HeHE
    papapa
    HeY
    Obama
    Jack Obama
    HeHe HeHE
    brabrabra HeHe
    Obama ASDA
    papapa Obama
    Obama HeHE
    3
    Mike Obama
    HeHE Jack
    papapa brabrabra
    输出样例#1:
    No.
    Yes.
    Yes.
    传送门 一中校运会之百米跑
    并查集代码
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <string>
    #include <map>
    
    using namespace std;
    
    map<string,int>q;
    string a[20001];
    int n,i,j,m,fa[20001];
    int find(int v)
    {
        if(fa[v]==v) return v;
        else return find(fa[v]);
    }
    int main()
    {
        cin>>n>>m;
        for(i=1;i<=n;++i) fa[i]=i;
        for(i=0;i<n;++i)
        {
            cin>>a[i];
            q[a[i]]=i;
        }
        string b,c;
        for(i=0;i<m;++i)
        {
            cin>>b>>c;
            int f1=find(q[b]),f2=find(q[c]);
            if(f1!=f2)
            {
                fa[f2]=f1;
                for(j=1;j<=n;++j)
                {
                    if(fa[j]==f2) fa[j]=f1;
                }
            }
        }
        int Limit;
        cin>>Limit;
        string k,l;
        while(Limit--)
        {
            cin>>k>>l;
            if(fa[q[k]]==fa[q[l]])
            cout<<"Yes."<<endl;
            else cout<<"No."<<endl;
        }
    }
     
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    this指向详解
    领域驱动设计-1-概述
    算法 表达式求值
    进制转换
    IDEA Junit FileNotFoundException: class path resource [spring/spring.xml] cannot be opened because it does not exist
    aes加密示例
    create an oauth app
    搭建docusaurus博客
    Vue项目整体架构记要
    vue+element 获取验证码
  • 原文地址:https://www.cnblogs.com/ruojisun/p/6259774.html
Copyright © 2011-2022 走看看