题目链接:http://codeforces.com/problemset/problem/515/B

题目意思:有 n 个 boy 和 m 个 girl,有 b 个 boy 和 g 个 girl (通过给出数组下标)是 happy的,规定每轮 dinner 中,派出编号为 i mod n 个男 和 i mod m 个女去。只要他们其中一个为 happy 时,另一个也会变得 happy,问最终所有男女是否都变得 happy。

  一步一步模拟就可以了。这个问题有一个难点,就是究竟要进行多少次才能判断有些男女无论如何都不会happy的。由于数据量不大,只有100。最坏的情况就是每一个男女都有机会组合,所以 100 * 100 次来控制次数就可以了。每次配完对都检查下是否每个男女都已经为 happy,以便尽早结束循环,不要再进行无谓的组合。

  开 virtual 做的,发现,为什么B比C更加少人做出来。。。(C是完全木有思路 - -)

  

 #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std; const int maxn = + ;
int boy[maxn], girl[maxn];
int n, m; int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif // ONLINE_JUDGE int b, g;
while (scanf("%d%d", &n, &m) != EOF) {
memset(boy, , sizeof(boy));
memset(girl, , sizeof(girl)); int in;
scanf("%d", &b);
for (int i = ; i < b; i++) {
scanf("%d", &in);
boy[in] = ;
}
scanf("%d", &g);
for (int i = ; i < g; i++) {
scanf("%d", &in);
girl[in] = ;
}
bool flag;
int stb = , stg = ;
int cnt = maxn*maxn;
while (cnt) {
flag = true;
stb %= n;
stg %= m;
if (boy[stb] || girl[stg]) { // 其中一个是happy的
boy[stb] = ;
girl[stg] = ;
}
// 检查男女两边是否都已经happy
for (int i = ; i < n; i++) {
if (!boy[i]) {
flag = false;
break;
}
}
for (int i = ; i < m; i++) {
if (!girl[i]) {
flag = false;
break;
}
}
if (flag)
break;
stb++;
stg++;
cnt--;
}
printf("%s\n", flag ? "Yes" : "No");
}
return ;
}

codeforces 515B. Drazil and His Happy Friends 解题报告的更多相关文章

  1. CodeForces 515B. Drazil and His Happy Friends

    B. Drazil and His Happy Friends time limit per test 2 seconds memory limit per test 256 megabytes in ...

  2. codeforces 814B.An express train to reveries 解题报告

    题目链接:http://codeforces.com/problemset/problem/814/B 题目意思:分别给定一个长度为 n 的不相同序列 a 和 b.这两个序列至少有 i 个位置(1 ≤ ...

  3. codeforces 558B. Amr and The Large Array 解题报告

    题目链接:http://codeforces.com/problemset/problem/558/B 题目意思:给出一个序列,然后找出出现次数最多,但区间占用长度最短的区间左右值. 由于是边读入边比 ...

  4. codeforces 514B. Han Solo and Lazer Gun 解题报告

    题目链接:http://codeforces.com/problemset/problem/514/B 题目意思:给出双头枪的位置(x0, y0),以及 n 个突击队成员的坐标.双头枪射击一次,可以把 ...

  5. codeforces 471C.MUH and House of Cards 解题报告

    题目链接:http://codeforces.com/problemset/problem/471/C 题目意思:有 n 张卡,问能做成多少种不同楼层(floor)的 house,注意这 n 张卡都要 ...

  6. codeforces C. Vasily the Bear and Sequence 解题报告

    题目链接:http://codeforces.com/problemset/problem/336/C 题目意思:给出一个递增的正整数序列 a1, a2, ..., an,要求从中选出一堆数b1, b ...

  7. codeforces A. Vasily the Bear and Triangle 解题报告

    题目链接:http://codeforces.com/problemset/problem/336/A 好简单的一条数学题,是8月9日的.比赛中没有做出来,今天看,从pupil变成Newbie了,那个 ...

  8. codeforces 820A. Mister B and Book Reading 解题报告

    题目链接:http://codeforces.com/problemset/problem/820/A 坑爹题目,坑爹题目,坑爹题目....汗 = =!  后台还110个 test 有个地方需要注意下 ...

  9. codeforces C. Inna and Huge Candy Matrix 解题报告

    题目链接:http://codeforces.com/problemset/problem/400/C 题目意思:给出一个n行m列的矩阵,问经过 x 次clockwise,y 次 horizontal ...

随机推荐

  1. 【Solr】 solr对拼音搜索和拼音首字母搜索的支持

    问:对于拼音和拼音首字母的支持,当你在搜商品的时候,如果想输入拼音和拼音首字母就给出商品的信息,怎么办呢? 实现方式有2种,但是他们其实是对应的.  用lucene实现 1.建索引, 多建一个索引字段 ...

  2. KVM虚拟机内存不足,调整参数

    Dec :: vgfs001 kernel: tiotest_AMD_x86 invoked oom-killer: gfp_mask=, oom_adj=, oom_score_adj= Dec : ...

  3. ACM_1 大数求和

    /*1 *2014.11.18 *大数求和 */ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <strin ...

  4. HttpClient连接池的连接保持、超时和失效机制

    HTTP是一种无连接的事务协议,底层使用的还是TCP,连接池复用的就是TCP连接,目的就是在一个TCP连接上进行多次的HTTP请求从而提高性能.每次HTTP请求结束的时候,HttpClient会判断连 ...

  5. Linux 信号量大全

    编号 信号名称 缺省动作 说明 1 SIGHUP 终止 终止控制终端或进程 2 SIGINT 终止 键盘产生的中断(Ctrl-C) 3 SIGQUIT dump 键盘产生的退出 4 SIGILL du ...

  6. servlet之filter过滤器

    1.Servlet 过滤器有以下目的 在客户端的请求访问后端资源之前,拦截这些请求. 在服务器的响应发送回客户端之前,处理这些响应. 2.Filter接口 1.每一个过滤器都需直接或间接继承Filte ...

  7. springmvc之前后台传值

    一.向后台传值 1.项目结构 2.jar包 3.spring-config.xml <?xml version="1.0" encoding="UTF-8" ...

  8. linux 下 修改mysql账号密码

    1.root用户登录到mysql数据库代码示例:/usr/local/mysql/bin/mysql -u root -p (输入密码进入mysql)2.进入mysql,输入:代码示例:use mys ...

  9. 最牛X的GCC 内联汇编

    导读 正如大家知道的,在C语言中插入汇编语言,其是Linux中使用的基本汇编程序语法.本文将讲解 GCC 提供的内联汇编特性的用途和用法.对于阅读这篇文章,这里只有两个前提要求,很明显,就是 x86 ...

  10. ORA-14402: 更新分区关键字列将导致分区的更改

    默认情况下,oracle的分区表对于分区字段是不允许进行update操作的,如果有对分区字段行进update,就会报错——ORA-14402: 更新分区关键字列将导致分区的更改.這種情況可以通過開啟表 ...