• 【rqnoj378】 约会计划


    题目描述

    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’(T_T)。

    【数据范围】

    0<m<=2008

    0<p<=2008

    输入格式第一行为n,m,p。n为mm的数量,cc知道m对朋友关系,有p次约会。

    2到n+1 行,每行一个字符串,为第i个mm的名字。{字符串长度<=11,且全大写}

    以下m行,每行两个字符串,用空格隔开 ,为有朋友关系的两个mm的名字。

    以下p行,每行为两个字符串,用空格隔开,为这p次约会中两个mm的名字。

    {保证数据不会出现没有出现过的名字}

    输出格式输出P行表示第i次约会的情况,输出‘safe’或者‘cc cry’
    样例输入

    3 1 1
    AAA
    BBB
    CCC
    AAA CCC
    AAA BBB

    样例输出

    cc cry

    题解

      并查集模板了。。。。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<string.h>
     5 #include<math.h>
     6 #include<map>
     7 #define inf 10000000
     8 using namespace std;
     9 map<string,int>ms;
    10 int parent[2010];
    11 int yxc(int x)
    12 {
    13     if(x!=parent[x]) parent[x]=yxc(parent[x]);
    14     else return x;
    15 }
    16 void add(int x,int y)
    17 {
    18     int i,j;
    19     i=yxc(x);
    20     j=yxc(y);
    21     if(i!=j)
    22         parent[i]=j;
    23 }
    24 int main()
    25 {
    26     int n,m,p;
    27     string a;
    28     string b;
    29     scanf("%d%d%d",&n,&m,&p);
    30     for(int i=1; i<=n; i++)
    31     {
    32         cin>>a;
    33         ms[a]=i;
    34         parent[i]=i;
    35     }
    36     for(int i=1; i<=m; i++)
    37     {
    38         cin>>a>>b;
    39         add(ms[a],ms[b]);
    40     }
    41     for(int i=1; i<=p; i++)
    42     {
    43         cin>>a>>b;
    44         int x=ms[a];
    45         int y=ms[b];
    46       //  printf("%d %d
    ",x,y);
    47        if(yxc(x)==yxc(y))
    48        {
    49            printf("safe
    ");
    50        }
    51        else printf("cc cry
    ");
    52 
    53     }
    54     return 0;
    55 }
  • 相关阅读:
    2、第1次做6寸气疯蛋糕【小烤箱,失败】
    1、气疯蛋糕
    37、【正版ps】如果画了一条形状直线之后,如何移动它呢?
    3、第1次做蛋糕预拌粉【失败】
    38、如何解决图层中使用蒙版后,ctrl+e合并图层会出现不是自己画的图的问题?
    7、第1次做慕斯蛋糕【芒果,成功】
    8、第2次做6寸气疯蛋糕【新烤箱,失败】
    6、如何打发蛋白
    【】学命名
    【其他】Practical C++ Library Stuff
  • 原文地址:https://www.cnblogs.com/zxhl/p/4655607.html
Copyright © 2020-2023  润新知