B. Drazil and His Happy Friends
这是 Codeforces Round #292 (Div. 2)的一道题,原题在这里,题意就是:
小明有n个男同学(编号为 0 ~ n-1)和m个女同学 (编号为 0 ~ m-1),小明要安排男女之间约会,如何安排约会呢,假设时间是i (i >=0) ,小明在 i 天就邀请 i % n 号男同学,和 i % m 号女同学约会,如果男女同学之间有一个是快乐的,那么两个人都是快乐的,那么问题来了,小明能否使他们全部都快乐?
我当时是这样想的,要是n和m相等的话,那么要是在编号区间 [0, n)之间都有人快乐,例如,
例a:
要是n = m = 3, n 中快乐的有 0、1, m 中快乐的有 2,那么全部人在约会后都会快乐。
要是n 和 m 不想等呢? 问题来了,然后这个时间要怎么联系起来?
我当时想不出,模拟这个约会的过程,用O(n * m) 的方法,结果被hack了一下,水爆了 = =、 看了editorial后才明白的。
好了,回到问题,要是n 和m 不想等的时候呢,假设n = 2 , m = 3,则在时间 i = 2 后,在男生中 2%2 = 0 号男生与 2%3 = 2 号女生约会,可以把m 中的2 号女生看作一个,与 两个男生约会,问题就变成了 n = 2, m = 1, 之所以要这么做,是为了找出一个区间,这个区间满足,每个编号都有人快乐, 就像前面例a 一样。然后继续,n = 2, m = 1时,在时间i = 1 时,男生中 1 % 2 = 1 号男生与 1 % 1 = 0 号女生约会,把 n 中的1 号男生看作一个,与1个女生约会,问题就编程了
n = m = 1, 这样,就达到了之前说的一个目的,找到区间[0, 1) 要是这个内对应的编号都有人快乐,那么全部人都会快乐。先设 c 是 n 和 m 的最大公约数,在 n = 2, m = 3, i = 2 时,这样变换, n = 2, m = m % n = 1, i 在累加时也这样做,最后把问题变换为 n = m = 1, 这样,只要区间之间
[0, 1) 之间对应的编号都有人快乐,那么全部人都会快乐。是不是很像gcd,在例子a 中,因 0、1 号是快乐的,那么0 % 1 = 0, 1 % 1 = 1,会因为他们而快乐,所以,每个快乐的人的编号去模n和m的公约数,就求出因为他们而快乐的人的编号。好了,说了一大堆没有逻辑的话,该上代码了。
#include <stdio.h>
#include <iostream>
#include <map>
#include <string.h>
using namespace std; int gcd(int a, int b){
int c, d;
d = max(a, b); c = min(a, b);
if(d%c == 0) return c;
else return gcd(d%c, c);
}
int pep[101];
int main(){
int n, m, b, g, c, i, cnt = 0, id;
// freopen("e:/in.txt", "r", stdin);
memset(pep, 0, sizeof(pep));
cin >> n >> m;
c = gcd(n, m);
cin >> b;
for( i = 0; i < b; i++ ){
cin >> id;
if(!pep[id%c]) pep[id%c] = 1, cnt++;
}
cin >> g;
for( i = 0; i < g; i++ ){
cin >> id;
if(!pep[id%c]) pep[id%c] = 1, cnt++;
} if(cnt == c) cout << "Yes";
else cout << "No";
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
B. Drazil and His Happy Friends的更多相关文章
- CodeForces 515C. Drazil and Factorial
C. Drazil and Factorial time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- 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 ...
- Codeforces Round #292 (Div. 1) C. Drazil and Park 线段树
C. Drazil and Park 题目连接: http://codeforces.com/contest/516/problem/C Description Drazil is a monkey. ...
- Codeforces Round #292 (Div. 1) B. Drazil and Tiles 拓扑排序
B. Drazil and Tiles 题目连接: http://codeforces.com/contest/516/problem/B Description Drazil created a f ...
- [codeforces 516]A. Drazil and Factorial
[codeforces 516]A. Drazil and Factorial 试题描述 Drazil is playing a math game with Varda. Let's define ...
- CF Drazil and Factorial (打表)
Drazil and Factorial time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- CF Drazil and His Happy Friends
Drazil and His Happy Friends time limit per test 2 seconds memory limit per test 256 megabytes input ...
- CF Drazil and Date (奇偶剪枝)
Drazil and Date time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- Codeforces Round #292 (Div. 1) - B. Drazil and Tiles
B. Drazil and Tiles Drazil created a following problem about putting 1 × 2 tiles into an n × m gri ...
- #292 (div.2) D.Drazil and Tiles (贪心+bfs)
Description Drazil created a following problem about putting × tiles into an n × m grid: "The ...
随机推荐
- Scut游戏服务器引擎6.1.5.6发布,直接可运行,支持热更新
1. 增加exe版(console),web版本(IIS)的游戏服宿主程序 2. 增加Model支持脚本化,实现不停服更新 3. 增加Language支持脚本化 4. 修改Sns与Pay Center ...
- dedecms 留言板中引用模板文件方法
最近在做一个用dedecms搭建的网站,客户提出要有留言板,dedecms带了一个留言板的模块,安装倒是十分简便,但装完后发现界面十分粗糙.装修比较简单,但是发现遇到一个问题:网站通用的导航栏无法显示 ...
- Java中的http相关的库:httpclient/httpcore/okhttp/http-request
httpclient/httpcore是apache下面的项目:中文文档下载参考 5 官网:http://hc.apache.org/ 在线文档:http://hc.apache.org/httpco ...
- 【秀优越(xie e)】原来出题也能够这么恶心。
通过邪恶的数据范围和数据限制居然能够把一道传统题出成题答2333. 诶毕竟内部互測,题目就不往上贴了. 特殊限制 - - - 题目作废.输出M行"Orz PoPoQQQ" - M ...
- linux虚拟机上挂载U盘
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTQwMjU5Ng==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- vs2010 assistx安装教程
参照此篇教程. 安装目录你可能找不到,因为那些文件是系统隐藏文件,打开隐藏即可. 然后,将此.exe安装到上面的目录下,然后,还需要进行一个破解,即需要将从网上下载的补丁放进去. 把目录下的VA_X. ...
- BigDecimal的String类型
java本身对浮点型的计算会丢失精度,这个一定要注意,必须要用BigDecimal的String类型才能解决精度的问题. BigDecimal一共有四个构造方法: 我们在计算商品价格的时候,一定要用B ...
- 使用sphinx生成美观的文档
先上效果图 详情 首先,须要知道什么是restructuredtext.能够理解为类似于markdown的一个东西. 然后 安装.pip install sphinx 进入存放文档的文件夹,在命令行, ...
- Proving Equivalences (hdu 2767 强联通缩点)
Proving Equivalences Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- Docker入门系列4:命令行小结
百度Baidu App Engine(BAE)平台也是以Docker作为其PaaS云基础. 目的就是为了解决以下问题: 1) 环境管理复杂: 从各种OS到各种中间件再到各种App,一款产品能够成功发布 ...