题目描述 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

题目分析:典型的并查集。

 #include<stdio.h>
 #include<string.h>
 int n,m,p;
 ][];

 ];//用于并查集的前驱数组
 void make_set(int pre[]);
 int Find(int x);
 void mix(int x,int y);

 int getStuID(char stuName[]);//传入某个学生的名字,返回学生的ID(名字在name[]中的下标)

 int main()
 {
     int i;
     ],t2[];
     int a,b;
     freopen("data.in","r",stdin);

     scanf("%d%d%d",&n,&m,&p);
     make_set(pre);//并查集数组pre[]的初始化
     ;i<n;i++) scanf("%s",name[i]);//输入n个人的名字
     ;i<m;i++)//输入m个关系
     {
         scanf("%s%s",t1,t2);
         a=getStuID(t1);
         b=getStuID(t2);
         mix(a,b);
     }
     ;i<p;i++)//做p次问询
     {
         scanf("%s%s",t1,t2);
         a=getStuID(t1);
         b=getStuID(t2);
         a=Find(a);
         b=Find(b);
         if(a!=b) printf("cc cry\n");
         else printf("safe\n");
     }
     ;
 }
 void make_set(int pre[])
 {
     int i;
     ;i<n;i++)
         pre[i]=i;
 }
 int Find(int x)
 {
     int r=x;
     while(r!=pre[r])
         r=pre[r];

     int i=x,j;
     while(pre[i]!=r)
     {
         j=pre[i];
         pre[i]=r;
         i=j;
     }
     return r;
 }
 void mix(int x,int y)
 {
     int fx=Find(x),fy=Find(y);
     if(fx!=fy)
     {
         pre[fy]=fx;
     }
 }

 int getStuID(char stuName[])//传入某个学生的名字,返回学生的ID(名字在name[]中的下标)
 {
     ;
     ;i<n;i++)
     {
         ) return i;
     }
     return i;
 }

code vs 2639 约会计划的更多相关文章

  1. codevs 2639 约会计划

    codevs 2639 约会计划 题目描述 Description cc是个超级帅哥,口才又好,rp极高(这句话似乎降rp),又非常的幽默,所以很多mm都跟他关系不错.然而,最关键的是,cc能够很好的 ...

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

    题目描述 Description cc是个超级帅哥,口才又好,rp极高(这句话似乎降rp),又非常的幽默,所以很多mm都跟他关系不错.然而,最关键的是,cc能够很好的调解各各妹妹间的关系.mm之间的关 ...

  3. RQNOJ PID379 / 约会计划 -并查集

    PID379 / 约会计划 题目描述 cc是个超级帅哥,口才又好,rp极高(这句话似乎降rp),又非常的幽默,所以很多mm都跟他关系不错.然而,最关键的是,cc能够很好的调解各各妹妹间的关系.mm之间 ...

  4. 【日常学习】【并查集+map】codevs2639 约会计划题解

    然而我居然让诸城一中悲剧机房的C++可以编译了··· 直接上题目 题目描写叙述 Description cc是个超级帅哥,口才又好.rp极高(这句话似乎降rp),又非常的幽默,所以非常多mm都跟他关系 ...

  5. T2639 约会计划 codevs

    http://codevs.cn/problem/2639/ 题目描述 Description cc是个超级帅哥,口才又好,rp极高(这句话似乎降rp),又非常的幽默,所以很多mm都跟他关系不错.然而 ...

  6. rqnoj378 约会计划

    题目描述 cc是个超级帅哥,口才又好,rp极高(这句话似乎降rp),又非常的幽默,所以很多mm都跟他关系不错.然而,最关键的是,cc能够很好的调解各各妹妹间的关系.mm之间的关系及其复杂,cc必须严格 ...

  7. 【rqnoj378】 约会计划

    题目描述 cc是个超级帅哥,口才又好,rp极高(这句话似乎降rp),又非常的幽默,所以很多mm都跟他关系不错.然而,最关键的是,cc能够很好的调解各各妹妹间的关系.mm之间的关系及其复杂,cc必须严格 ...

  8. 代码编辑器横评:为什么 VS Code 能拔得头筹

    摘要: 为什么 VS Code 这么火... 公众号:玩转 VS Code 原文:代码编辑器横评:为什么 VS Code 能拔得头筹 Fundebug经授权转载,版权归原作者所有. 2015 年 4 ...

  9. 知否知否,VS Code 不止开源

    VS Code, 昨夜始于“开源”,如今“开源”深处渡. 读者看到这句话,也许会有疑惑,为什么两个“开源”都加上了双引号? 其实是笔者有意为之,因为这个两个“开源”的意义有着很大的差别,第一个“开源” ...

随机推荐

  1. matlib实现梯度下降法

    样本文件下载:ex2Data.zip ex2x.dat文件中是一些2-8岁孩子的年龄. ex2y.dat文件中是这些孩子相对应的体重. 我们尝试用批量梯度下降法,随机梯度下降法和小批量梯度下降法来对这 ...

  2. Oracle比较2个表内容

    Comparing the Contents of Two Tables A表和B表.拥有一致列,C2一列内容不同. I have two tables named A and B. They hav ...

  3. linux C++ 多线程使用pthread_cond 条件变量

    1. 背景 多线程中经常需要使用到锁(pthread_mutex_t)来完成多个线程之间的互斥操作. 但是互斥锁有一个明显到缺点: 只有两种状态,锁定和非锁定. 而条件变量则通过允许线程阻塞并等待另一 ...

  4. go语言之进阶篇http客户端编程

    1.http客户端编程 示例: http_server.go package main import ( "fmt" "net/http" ) //w, 给客户 ...

  5. SharePoint SPListItem 权限设置

    namespace Microsoft.SharePoint { using System; using System.Text; using System.Collections.Generic; ...

  6. 解决在非Activity中使用startActivity

    错误提示信息: Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an ...

  7. Multiply Strings leetcode java

    题目: Given two numbers represented as strings, return multiplication of the numbers as a string. Note ...

  8. RxJava【创建】操作符 create just from defer timer interval MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  9. android 微信听筒无声

    Dual talk项目sim卡插在卡2时.微信听筒无声: 第三方APP在听筒接听语音时会固定去设audio_mode为incall,而不会去管以下是sim1还是sim2在位. 而speechdrive ...

  10. jsp table 表格单元格编辑示例

    列表单元格: //两个 隐藏的 input, 第一个存 记录 id, 单元格内容是排序码 : <td id="ordinal"><%=ordinal%> & ...