• (map 并查集) codeVs 2639 约会计划


    题目描述 Description

    cc是个超级帅哥,口才又好,rp极高(这句话似乎降rp),又非常的幽默,所以很多mm都跟他关系不错。然而,最关键的是,cc能够很好的调解各各妹妹间的关系。mm之间的关系及其复杂,cc必须严格掌握她们之间的朋友关系,好一起约她们出去,cc要是和不是朋友的两个mm出去玩,后果不堪设想……
    cc只掌握着一些mm之间的关系,但是cc比较聪明,他知道a和b是朋友,b和c 是朋友,那么a和c也是朋友。
    下面给出m对朋友关系, cc 定了p次约会,每次约会找两个mm,如果这两个mm是朋友,那么不会出乱子,输出‘safe',要是不是朋友,那么cc必然会挨……,输出‘cc cry'

    输入描述 Input Description

    第一行为n,m,p。n为mm的数量,cc知道m对朋友关系,有p次约会。
    2到n+1 行,每行一个字符串,为第i个mm的名字。{字符串长度<=11,且全大写}
    以下m行,每行两个字符串,用空格隔开 ,为有朋友关系的两个mm的名字。
    以下p行,每行为两个字符串,用空格隔开,为这p次约会中两个mm的名字。
    {保证数据不会出现没有出现过的名字}

    输出描述 Output Description

    输出P行表示第i次约会的情况,输出‘safe'或者‘cc cry'

    样例输入 Sample Input

    3 1 1
    AAA
    BBB
    CCC
    AAA CCC
    AAA BBB

    样例输出 Sample Output

    cc cry

    数据范围及提示 Data Size & Hint

    0<m<=2008
    0<p<=2008

    ---------------------------------------------------------------------------------------------------------------------------------------------------
    由于都是字符串,则用map建立“数组”,然后使用并查集
    C++代码:
    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<map>
    using namespace std;
    map<string,string> f;
    string Find(string x){
        if(f[x]!=x)
            f[x] = Find(f[x]);
        return f[x];
    }
    void merge(string x,string y){
        if(Find(x) != Find(y))
            f[f[y]] = f[x];
    }
    int main(){
        int n,m,p;
        cin>>n>>m>>p;
        string s;
        for(int i = 1; i <= n; i++){
            cin>>s;
            f[s] = s;
        }
        string str1,str2;
        for(int i = 1; i <= m; i++){
            cin>>str1>>str2;
            merge(str1,str2);
        }
        string s1,s2;
        for(int i = 1; i <= p; i++){
            cin>>s1>>s2;
            if(Find(s1) != Find(s2)){
                cout<<"cc cry"<<endl;
            }
            else{
                cout<<"safe"<<endl;
            }
        }
        return 0;
    }
  • 相关阅读:
    Linux下取代top的进程管理工具 htop
    Linux学习初步
    【程序员的吐槽】八一八那些让你感觉蠢哭了的BUG
    【学习随手记】POSIX消息队列执行报Permission denied的问题。
    【学习总结】环境高级编程源码配置
    【学习总结】UNIX网络编程使用源码配置
    【工作心得】有关主键索引
    【转】More Effective C++ (虚拟构造函数)
    【转】C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
    【学习心得】python学习心得
  • 原文地址:https://www.cnblogs.com/Weixu-Liu/p/10651528.html
Copyright © 2020-2023  润新知