20181107 模拟赛T1:快乐传递政治正确版
问题描述
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:快乐传递政治正确版的更多相关文章
- 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解
今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...
- 20180610模拟赛T1——脱离地牢
Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主Helen在一起过着幸福的生活.他们都随身带有一块带磁性的阴阳魔法石,身居地狱的魔王Satan早就想着得到这两块石头了,只要 ...
- [NOIP2018校模拟赛]T1 阶乘
题目: 描述 有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值. 输入 共两行. 第一行一个正整数n. 第二行n个正整数a[i]. 输出 共 ...
- 5.20 省选模拟赛 T1 图 启发式合并 线段树合并 染色计数问题
LINK:图 在说这道题之前吐槽一下今天的日子 520 = 1+1+4+514. /cy 这道题今天做的非常失败 一点分都没拿到手 关键是今天的T3 把我整个人给搞崩了. 先考虑 如果得到了这么一张图 ...
- 5.15 省选模拟赛 T1 点分治 FFT
LINK:5.15 T1 对于60分的暴力 都很水 就不一一赘述了. 由于是询问所有点的这种信息 确实不太会. 想了一下 如果只是询问子树内的话 dsu on tree还是可以做的. 可以自己思考一下 ...
- 20161007 NOIP 模拟赛 T1 解题报告
排序 3.1 题意描述 众所周知,熟练掌握至少一种排序算法是参加NOIP的必备技能.常见的排序算法有冒泡 排序.归并排序.快速排序.奇偶排序.猴子排序.梳排序.鸡尾酒排序.臭皮匠排序等. 在这里,介绍 ...
- NOIP欢乐模拟赛 T1 解题报告
小澳的方阵 (matrix.cpp/c/pas) [题目描述] 小澳最近迷上了考古,他发现秦始皇的兵马俑布局十分有特点,热爱钻研的小澳打算在电脑上还原这个伟大的布局. 他努力钻研,发现秦始皇布置兵马俑 ...
- [模拟赛] T1 高级打字机
Description 早苗入手了最新的高级打字机.最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧. 请为这种高级打字机设计一个程序,支持如下3种操作: 1.T x:在文章末尾打下一个小 ...
- 2019.2.25 模拟赛T1【集训队作业2018】小Z的礼物
T1: [集训队作业2018]小Z的礼物 我们发现我们要求的是覆盖所有集合里的元素的期望时间. 设\(t_{i,j}\)表示第一次覆盖第i行第j列的格子的时间,我们要求的是\(max\{ALL\}\) ...
随机推荐
- 3、Vue实例的属性
1.获取Vue实例的属性 2.data属性 每个Vue实例都会代理其data对象里所有的属性.如果实例创建之后添加或者更改属性,他不会触发视图更新. 这句话说了下面两件事情 1.每个Vue实例都会代理 ...
- 关于C#对Xml数据解析
首先进行简单说明Xml 与Html 和 XAML数据标签的差别. 1.Xml属于数据文本, 被设计为传输和存储数据,其焦点是数据的内容.它与json格式数据相似,可作为服务数据传输类型. 其中XML ...
- 自定义 Windows 右键菜单项
注:本文涉及到注册表操作,不认识请不要随意修改! 右键菜单项储存在注册表 HKEY_CLASSES_ROOT 中,一般各种程序的右键菜单项都可以在此项下面找到: 添加右键菜单项 右键单击 shell, ...
- C# 转成金额每三位逗号隔开
long aaaa = 14200666; Console.WriteLine(aaaa.ToString("N0")); Console.WriteLine(string.For ...
- .NET中的泛型概述
什么是泛型? 泛型是具有占位符(类型参数)的类.结构.接口和方法,这些占位符是类.结构.接口和方法所存储或使用的一个或多个类型的占位符.泛型集合类可以将类型形参用作其存储的对象类型的占位符:类型形参呈 ...
- springboot整合docker部署
环境安装 首先,需要安装Docker(例如:docker for windows) 下载地址:https://download.docker.com/win/stable/Docker%20for%2 ...
- axios + vue导出excel文件
(使用到了elementUI框架) <template> <el-button type="primary" size="mini" @cli ...
- linux rwx 权限说明
Linux的文件和目录的权限,有RWX三种. r(Read,读取):对文件而言,具有读取文件内容的权限:对目录来说,具有浏览目录的权限. w(Write,写入):对文件而言,具有新增,修改,删除文件内 ...
- Eclipse apk项目创建和项目构架
一.创建项目工程 设定名字 设定包名(每一台机器只有唯一的包名)下一步 根据设置进行选择 创建空项目 Finish即可创建 调节项目的字体 二.Eclipse 项目构架 Src 2. Gen R.ja ...
- 上传文本到hdfs上的一些命令
在hadoop下创建文件夹 bin/hdfs dfs -mkdir -p /usr/hadoop/spark/ touch wc.input 写一些文本进去. 上传到hdfs上 bin/hdfs ...