问题描述

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

// 70 fen baoli
/*
QAQ 这个70的baoli调了1h...然后就看见千古神犇 axm dalao的正解都写完了QAQ,在写暴力
对拍,我好慌,偶然一撇看到了他把它们放到了一个数组里,于是我也把他们放到一个
数组里,搞了好久一直不对。。放弃之际,决定再挣扎一下,然后..就调出来了,,但
是写完第一题心态爆炸. (PS:大家可不要学我没事乱看哦QAQ)
*/
#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
typedef long long ll;
using namespace std;
const int N=1e6+10; inline int read() {
int n=0,f=1;char ch=getchar();
while (ch<'0' || ch>'9') {if(ch=='-') f=-1;ch=getchar();}
while (ch<='9' && ch>='0') {n=(n<<3)+(n<<1)+ch-'0';ch=getchar();}
return n*f;
} inline void init() {
freopen("happy2.in","r",stdin);
freopen("happy2.out","w",stdout);
} int x[N],y[N],z[N];
int T,n,m,k,b,a,c; int main() {
init();
T=read();
while (T--) {
n=read(),m=read(),k=read();
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
memset(z,0,sizeof(z));
int aa=read();
for(int i=1;i<=aa;++i) a=read(),x[a]=1;
int ba=read();
for(int i=1;i<=ba;++i) b=read(),y[b]=1;
int ca=read();
for(int i=1;i<=ca;++i) c=read(),z[c]=1;
if(k) {
for(int i=0;i<=100000;++i)
if(y[i%m] || x[i%n] || z[i%k])
y[i%m]=x[i%n]=z[i%k]=1; } else {
for(int i=0;i<=100000;++i)
if(y[i%m] || x[i%n]) y[i%m]=x[i%n]=1;
}
int bz=1;
for(int i=0;i<n;++i)
if(!x[i]) bz=0;
for(int i=0;i<m;++i)
if(!y[i]) bz=0;
for(int i=0;i<k;++i)
if(!z[i]) bz=0;
if(bz==0) printf("No\n");
else printf("Yes\n");
}
return 0;
}

std:

#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
typedef long long ll;
using namespace std;
const long long inf=947483648;
const int N=1e5+10; ll T,n,m,k;
ll a[N],b[N],cc[N],vis[N]; inline ll read() {
ll n=0,f=1;char ch=getchar();
while (ch<'0' || ch>'9') {if(ch=='-') f=-1;ch=getchar();}
while (ch<='9' && ch>='0') {n=(n<<3)+(n<<1)+ch-'0';ch=getchar();}
return n*f;
} inline ll gcd(ll a,ll b) {
if(b==0) return a;
else return gcd(b,a%b);
} inline void init() {
freopen("happy2.in","r",stdin);
freopen("happy2.out","w",stdout);
}
int main() {
init();
T=read();
while (T--) {
memset(vis,0,sizeof(vis));
n=read(),m=read(),k=read();
ll jc=gcd(gcd(n,m),k);
ll a1,b1,c1;
a1=read();
for(ll i=0;i<a1;++i) vis[read()%jc]=1;
b1=read();
for(ll i=0;i<b1;++i) vis[read()%jc]=1;
c1=read();
for(ll i=0;i<c1;++i) vis[read()%jc]=1;
ll c=1;
for(ll i=0;i<jc;++i)
if(!vis[i]) {
c=0; break;
}
if(!c || a1+b1+c1==0) printf("No\n");
else printf("Yes\n");
} fclose(stdin); fclose(stdout);
return 0;
}

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. 修改host文件加速访问github

    修改本地电脑系统 hosts 文件C:\Windows\System32\drivers\etc,直接在最后加入以下代码 192.30.253.112 github.com 192.30.253.11 ...

  2. 解决Linq Join Group by 时报错:Nullable object must have a value.

    Linq Join Group by 时报Nullable object must have a value. 例如: from s in subject on ch.SubId equals s.S ...

  3. c# Windows服务管理

    .NET Framework中提供的类库可以很方便的实现对windows服务的安装.卸载.启动.停止.获取运行状态等功能.这些类都在System.ServiceProcess命名空间下. 所以,在开始 ...

  4. 接口XMPPConnection

    接口XMPPConnection 所有已知的实现类: AbstractXMPPConnection,XMPPBOSHConnection,XMPPTCPConnection 公共接口XMPPConne ...

  5. Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用

    Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...

  6. JS基础 —— 跨域

    为什么会跨域 浏览器的同源策略(MDN:https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy) URL:协议 ...

  7. 23、vue实现获取短信验证码

    1.html页面: <el-form-item prop="phoneCode" class="pr"> <el-input placehol ...

  8. Qt Graphics-View的打印功能实现

    本文来研究一下Qt Graphics-View的打印功能实现. 在Qt的官方文档中介绍了Graphics-View的打印相关内容. Qt中对打印的支持是有一个独立的printsupport模块来完成的 ...

  9. Java DbUtils 操作数据库

    示例 1.新建项目,把数据库驱动.DbUtils的jar包添加到项目中 2.新建文件夹resource,标识为资源根目录,下面新建数据库连接的配置文件mysql.properties driver=c ...

  10. idea注释类,方法

    1.添加类注释:file-settings-file and code Templates-Class #if (${PACKAGE_NAME} && ${PACKAGE_NAME} ...