Drazil and His Happy Friends

CodeForces - 515B

Drazil有很多朋友,他们中有些人是快乐的,有些人是不快乐的。 Drazil想让他的朋友变得快乐。于是,他发明了以下的计划。
 
在他的朋友中,有n个男孩和m个女孩。我们把男孩从0到n-1编号,女孩从0到m-1编号。在第i天,Drazil邀请第i mod n个男孩和第i mod m个女孩一起吃饭(注意i从0开始)。如果两个人之中有一个是快乐的,那么另外一个也会变得快乐,否则,这两个人的心情状态不会改变。一个人一旦成为快乐的人(或者他原本就是快乐的),他能保持永远快乐。
 
Drazil想知道他是否可以使用该计划,使得他所有的朋友都变得快乐。

Input

 
第一行包含两个整数n和m(1≤n,m≤100)。
 
第二行包含整数b(0≤b≤n),表示Drazil的男生朋友中目前是快乐男生的数量,然后有b个不同的整数X1,X2,...,Xb(0≤Xi<n),表示这些快乐男生的编号。
 
第三行包含整数g(0≤g≤m),表示Drazil的女生朋友中目前是快乐女生的数量,然后有g个不同的整数Y1,Y2,...,Yg(0≤Yj<m),表示这些快乐女生的编号。
 
题目保证输入数据中至少有一个人不快乐。

Output

 
如果 Drazil能使得所有的朋友都变得快乐,就输出Yes,否则输出No

Sample Input

输入样例1:
2 3
0
1 0
 
输入样例2:
2 4
1 0
1 2
 
输入样例3:
2 3
1 0
1 1

Sample Output

输出样例1:
Yes
 
输出样例2:
No
 
输出样例3:
Yes
 
sol:暴力枚举就可以,显然枚举到max(n,m)*n*m是可以的,但没必要这么大,只要到2*n*m就可以了(应该十分显然吧)
#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
ll s=;
bool f=;
char ch=' ';
while(!isdigit(ch))
{
f|=(ch=='-'); ch=getchar();
}
while(isdigit(ch))
{
s=(s<<)+(s<<)+(ch^); ch=getchar();
}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<)
{
putchar('-'); x=-x;
}
if(x<)
{
putchar(x+''); return;
}
write(x/);
putchar((x%)+'');
return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int N=;
int n,m;
bool Boy[N],Girl[N];
int main()
{
int i,cnt;
R(n); R(m);
R(cnt); for(i=;i<=cnt;i++) Boy[read()]=;
R(cnt); for(i=;i<=cnt;i++) Girl[read()]=;
for(i=;i<=((n*m)<<);i++) if(Boy[i%n]||Girl[i%m])
{
Boy[i%n]=Girl[i%m]=;
}
for(i=;i<n;i++) if(!Boy[i]) return *puts("NO");
for(i=;i<m;i++) if(!Girl[i]) return *puts("NO");
puts("YES");
return ;
}

codeforces515B的更多相关文章

随机推荐

  1. 广告牌LED灯阵

    大家都知道广告牌里面原来都是灯管,现在开始更换成LED灯了,下面是我在现场拍的图片: 下面这个图片是LED灯条,铝基板打印电路,TM1812驱动,该IC可以接受4组24位数据,然后转发数据(https ...

  2. MySQL(八)子查询和分组查询

    一.子查询 1.子查询(subquery):嵌套在其他查询中的查询. 例如:select user_id from usertable where mobile_no in (select mobil ...

  3. Android 动态的给Button、TextView、ImageView等控件设置了background后,再设置padding属性时该属性不起作用

    也许大家遇到这样一个问题,有时我们根据业务需要在一个ViewGroup中动态的(程序运行过程中)添加View.例如添加Button,就需要给Button添加background.padding.mar ...

  4. 【博客大赛】使用LM2677制作的3V至24V数控可调恒压源

    [博客大赛]使用LM2677制作的3V至24V数控可调恒压源   http://bbs.ednchina.com/BLOG_ARTICLE_3013105.HTM LM2677,是TI公司生产的高效率 ...

  5. 使用Quartz实现定时任务

    一:Quertz的用途 Quertz是一个开源的作业任务调度框架,他可以完成像JavaScript定时器类式的功能,其实Java中Timer也可实现部分功能,但相比Quertz还是略逊一筹,本人这次需 ...

  6. [Spark][Python][DataFrame][SQL]Spark对DataFrame直接执行SQL处理的例子

    [Spark][Python][DataFrame][SQL]Spark对DataFrame直接执行SQL处理的例子 $cat people.json {"name":" ...

  7. AT3611 Tree MST

    题面 题解 考虑最小化\(dis(x, y)\) 这里需要对一种奇怪的最小生成树算法:Boruvka算法有深刻的理解. 考虑该算法的执行过程,我们可以考虑进行点分治,每次找到离分治重心最近的点,然后将 ...

  8. C#_委托的使用

    C#基础---委托的使用   一:什么是委托     委托是一种定义方法签名的类型当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联.您可以通过委托实例调用方法.委托是一个引用类型,所以它具 ...

  9. 关于用tesseract和tesserocr识别图片的一个问题

    对于像我这样初学python网络爬虫的freshman来说,软件的准备和环境的配置能让我们崩溃.其中用刚安装好的tesseract和tesserocr库测试识别验证码就是其中一例. 这里我要测试的验证 ...

  10. split-brain 脑裂问题(Keepalived)

    脑裂(split-brain)指在一个高可用(HA)系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立节点,这时两个节点开始争抢共享资源,结果会导致系统混乱,数据损坏.对于无状 ...