问题描述

David 有很多好朋友。有些期末季刚结束,有些人很快乐,但有些不太快乐,David 想把快乐传递给每个人,作为心理学大师,他准备了如下计划:David 的朋友中有 n 个男生m 个女生, 还有 k 个跨性别者,方便起见,将他们分别编号为 0,...,n−1 和 0,...,m−1, 0,...,k −1,在第 i 天,David会邀请编号为 (i mod n) 的男生和编号为 (i mod m) 的女生还有 (i mod k)的跨性别者共进晚餐(因为 David 同时是程序员,所以从这个计划从第 0天开始) 。共进晚餐的三个人只要至少有有一个是快乐的人,另外的人也会变得快乐起来。否则大家的状态不会改变(一旦一个人是快乐的,他就会永远快乐下去) 。现在问题来了,David 想知道他是否能通过这个计划使得所有人都快乐起来呢?

输入格式

第一行一个整数 T ≤ 20,表示该测试点数据组数

每组数据的第一行包含三个整数 n,m,k, 保证至少一类人不为空

接下来一行第一个整数为 0 ≤ b ≤ n ,表示目前快乐的男生的数量,接下来

b 个空格隔开的整数 0 ≤ x i < n,表示快乐的男生的编号。

接下来一行第一个整数为 0 ≤ g ≤ m ,表示目前快乐的女生的数量,接下

来 g 个空格隔开的整数 0 ≤ y i < m,表示快乐的女生的编号。

接下来一行第一个整数为 0 ≤ t ≤ k ,表示目前快乐的跨性别者的数量,接

下来 t 个空格隔开的整数 0 ≤ z i < t,表示快乐的跨性别者的编号。

相邻两组数据之间有一行空行

输出格式

假如最终所有人都能变的快乐起来,就输出”Yes” (不带引号),否则输出”No”.

样例输入 1

3

2 3 0

0

1 0

0

2 4 0

1 0

1 2

0

2 3 0

1 0

1 1

0

样例输出 1

Yes

No

Yes

样例解释

对于第一组数据:

第 0 天,0 号男生和 0 号女生吃饭,因为 0 号女生是快乐的,所以 0 号男

生也变得快乐了;

第 1 天,1 号男生和 1 号女生吃饭,因为他们本来就都不快乐,情况没有变

化;

第 2 天,0 号男生和 2 号女生吃饭,因为 0 号男生是快乐的,所以 2 号女

生也变得快乐了;

第 3 天,1 号男生和 0 号女生吃饭,因为 0 号女生是快乐的,所以 1 号男

生也变得快乐了;

第 4 天,0 号男生和 1 号女生吃饭,因为 0 号男生是快乐的,所以 1 号女

生也变得快乐了;

这样就全都快乐了

对于第二组数据:1 号男生,1 号女生和 3 号女生永远也没法变得快乐

数据范围及约定

对于 50% 的数据,n,m ≤ 100,k = 0

对于 70% 的数据, n,m,k ≤ 2000

另外存在 10% 的数据, n,m ≤ 1000000000, b,g ≤ 100000,k = 0

对于 100% 的数据,n,m,k ≤ 1000000000, b,g,t ≤ 100000

  1. // 70 fen baoli
  2. /*
  3. QAQ 这个70的baoli调了1h...然后就看见千古神犇 axm dalao的正解都写完了QAQ,在写暴力
  4. 对拍,我好慌,偶然一撇看到了他把它们放到了一个数组里,于是我也把他们放到一个
  5. 数组里,搞了好久一直不对。。放弃之际,决定再挣扎一下,然后..就调出来了,,但
  6. 是写完第一题心态爆炸. (PS:大家可不要学我没事乱看哦QAQ)
  7. */
  8. #include<iostream>
  9. #include<cstring>
  10. #include<cmath>
  11. #include<cstdio>
  12. #include<queue>
  13. #include<algorithm>
  14. using namespace std;
  15. typedef long long ll;
  16. using namespace std;
  17. const int N=1e6+10;
  18. inline int read() {
  19. int n=0,f=1;char ch=getchar();
  20. while (ch<'0' || ch>'9') {if(ch=='-') f=-1;ch=getchar();}
  21. while (ch<='9' && ch>='0') {n=(n<<3)+(n<<1)+ch-'0';ch=getchar();}
  22. return n*f;
  23. }
  24. inline void init() {
  25. freopen("happy2.in","r",stdin);
  26. freopen("happy2.out","w",stdout);
  27. }
  28. int x[N],y[N],z[N];
  29. int T,n,m,k,b,a,c;
  30. int main() {
  31. init();
  32. T=read();
  33. while (T--) {
  34. n=read(),m=read(),k=read();
  35. memset(x,0,sizeof(x));
  36. memset(y,0,sizeof(y));
  37. memset(z,0,sizeof(z));
  38. int aa=read();
  39. for(int i=1;i<=aa;++i) a=read(),x[a]=1;
  40. int ba=read();
  41. for(int i=1;i<=ba;++i) b=read(),y[b]=1;
  42. int ca=read();
  43. for(int i=1;i<=ca;++i) c=read(),z[c]=1;
  44. if(k) {
  45. for(int i=0;i<=100000;++i)
  46. if(y[i%m] || x[i%n] || z[i%k])
  47. y[i%m]=x[i%n]=z[i%k]=1;
  48. } else {
  49. for(int i=0;i<=100000;++i)
  50. if(y[i%m] || x[i%n]) y[i%m]=x[i%n]=1;
  51. }
  52. int bz=1;
  53. for(int i=0;i<n;++i)
  54. if(!x[i]) bz=0;
  55. for(int i=0;i<m;++i)
  56. if(!y[i]) bz=0;
  57. for(int i=0;i<k;++i)
  58. if(!z[i]) bz=0;
  59. if(bz==0) printf("No\n");
  60. else printf("Yes\n");
  61. }
  62. return 0;
  63. }

std:

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cmath>
  4. #include<cstdio>
  5. #include<queue>
  6. #include<algorithm>
  7. using namespace std;
  8. typedef long long ll;
  9. using namespace std;
  10. const long long inf=947483648;
  11. const int N=1e5+10;
  12. ll T,n,m,k;
  13. ll a[N],b[N],cc[N],vis[N];
  14. inline ll read() {
  15. ll n=0,f=1;char ch=getchar();
  16. while (ch<'0' || ch>'9') {if(ch=='-') f=-1;ch=getchar();}
  17. while (ch<='9' && ch>='0') {n=(n<<3)+(n<<1)+ch-'0';ch=getchar();}
  18. return n*f;
  19. }
  20. inline ll gcd(ll a,ll b) {
  21. if(b==0) return a;
  22. else return gcd(b,a%b);
  23. }
  24. inline void init() {
  25. freopen("happy2.in","r",stdin);
  26. freopen("happy2.out","w",stdout);
  27. }
  28. int main() {
  29. init();
  30. T=read();
  31. while (T--) {
  32. memset(vis,0,sizeof(vis));
  33. n=read(),m=read(),k=read();
  34. ll jc=gcd(gcd(n,m),k);
  35. ll a1,b1,c1;
  36. a1=read();
  37. for(ll i=0;i<a1;++i) vis[read()%jc]=1;
  38. b1=read();
  39. for(ll i=0;i<b1;++i) vis[read()%jc]=1;
  40. c1=read();
  41. for(ll i=0;i<c1;++i) vis[read()%jc]=1;
  42. ll c=1;
  43. for(ll i=0;i<jc;++i)
  44. if(!vis[i]) {
  45. c=0; break;
  46. }
  47. if(!c || a1+b1+c1==0) printf("No\n");
  48. else printf("Yes\n");
  49. }
  50. fclose(stdin); fclose(stdout);
  51. return 0;
  52. }

20181107 模拟赛T1:快乐传递政治正确版的更多相关文章

  1. 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解

    今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...

  2. 20180610模拟赛T1——脱离地牢

    Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主Helen在一起过着幸福的生活.他们都随身带有一块带磁性的阴阳魔法石,身居地狱的魔王Satan早就想着得到这两块石头了,只要 ...

  3. [NOIP2018校模拟赛]T1 阶乘

    题目: 描述 有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值. 输入 共两行. 第一行一个正整数n. 第二行n个正整数a[i]. 输出 共 ...

  4. 5.20 省选模拟赛 T1 图 启发式合并 线段树合并 染色计数问题

    LINK:图 在说这道题之前吐槽一下今天的日子 520 = 1+1+4+514. /cy 这道题今天做的非常失败 一点分都没拿到手 关键是今天的T3 把我整个人给搞崩了. 先考虑 如果得到了这么一张图 ...

  5. 5.15 省选模拟赛 T1 点分治 FFT

    LINK:5.15 T1 对于60分的暴力 都很水 就不一一赘述了. 由于是询问所有点的这种信息 确实不太会. 想了一下 如果只是询问子树内的话 dsu on tree还是可以做的. 可以自己思考一下 ...

  6. 20161007 NOIP 模拟赛 T1 解题报告

    排序 3.1 题意描述 众所周知,熟练掌握至少一种排序算法是参加NOIP的必备技能.常见的排序算法有冒泡 排序.归并排序.快速排序.奇偶排序.猴子排序.梳排序.鸡尾酒排序.臭皮匠排序等. 在这里,介绍 ...

  7. NOIP欢乐模拟赛 T1 解题报告

    小澳的方阵 (matrix.cpp/c/pas) [题目描述] 小澳最近迷上了考古,他发现秦始皇的兵马俑布局十分有特点,热爱钻研的小澳打算在电脑上还原这个伟大的布局. 他努力钻研,发现秦始皇布置兵马俑 ...

  8. [模拟赛] T1 高级打字机

    Description 早苗入手了最新的高级打字机.最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧. 请为这种高级打字机设计一个程序,支持如下3种操作: 1.T x:在文章末尾打下一个小 ...

  9. 2019.2.25 模拟赛T1【集训队作业2018】小Z的礼物

    T1: [集训队作业2018]小Z的礼物 我们发现我们要求的是覆盖所有集合里的元素的期望时间. 设\(t_{i,j}\)表示第一次覆盖第i行第j列的格子的时间,我们要求的是\(max\{ALL\}\) ...

随机推荐

  1. 3、Vue实例的属性

    1.获取Vue实例的属性 2.data属性 每个Vue实例都会代理其data对象里所有的属性.如果实例创建之后添加或者更改属性,他不会触发视图更新. 这句话说了下面两件事情 1.每个Vue实例都会代理 ...

  2. 关于C#对Xml数据解析

    首先进行简单说明Xml 与Html  和 XAML数据标签的差别. 1.Xml属于数据文本, 被设计为传输和存储数据,其焦点是数据的内容.它与json格式数据相似,可作为服务数据传输类型. 其中XML ...

  3. 自定义 Windows 右键菜单项

    注:本文涉及到注册表操作,不认识请不要随意修改! 右键菜单项储存在注册表 HKEY_CLASSES_ROOT 中,一般各种程序的右键菜单项都可以在此项下面找到: 添加右键菜单项 右键单击 shell, ...

  4. C# 转成金额每三位逗号隔开

    long aaaa = 14200666; Console.WriteLine(aaaa.ToString("N0")); Console.WriteLine(string.For ...

  5. .NET中的泛型概述

    什么是泛型? 泛型是具有占位符(类型参数)的类.结构.接口和方法,这些占位符是类.结构.接口和方法所存储或使用的一个或多个类型的占位符.泛型集合类可以将类型形参用作其存储的对象类型的占位符:类型形参呈 ...

  6. springboot整合docker部署

    环境安装 首先,需要安装Docker(例如:docker for windows) 下载地址:https://download.docker.com/win/stable/Docker%20for%2 ...

  7. axios + vue导出excel文件

    (使用到了elementUI框架) <template> <el-button type="primary" size="mini" @cli ...

  8. linux rwx 权限说明

    Linux的文件和目录的权限,有RWX三种. r(Read,读取):对文件而言,具有读取文件内容的权限:对目录来说,具有浏览目录的权限. w(Write,写入):对文件而言,具有新增,修改,删除文件内 ...

  9. Eclipse apk项目创建和项目构架

    一.创建项目工程 设定名字 设定包名(每一台机器只有唯一的包名)下一步 根据设置进行选择 创建空项目 Finish即可创建 调节项目的字体 二.Eclipse 项目构架 Src 2. Gen R.ja ...

  10. 上传文本到hdfs上的一些命令

    在hadoop下创建文件夹 bin/hdfs dfs -mkdir -p /usr/hadoop/spark/ touch wc.input  写一些文本进去. 上传到hdfs上  bin/hdfs ...