codeforces 515B B. Drazil and His Happy Friends(模擬)
阿新 • • 發佈:2019-01-29
題目連結:
題目大意:
給出一個n,m,代表男女的數量,第i天讓i%n號男和i%m號女約會,如果他們其中有一個人是 開心的,那麼另一個人也會變開心,問能否通過有限次約會讓他們都開心。
題目分析:
直接模擬100000次,然後判斷是否依舊存在不開心的人即可,因為存在迴圈節,懶得算迴圈節長度,所以直接100000了。。。反正不會超時。
AC程式碼:
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#define MAX 107
using namespace std;
int n,m,b,g,u,v;
int x[MAX],y[MAX];
int gcd ( int a , int b )
{
return !b?a:gcd(b,a%b);
}
int main ( )
{
while ( ~scanf("%d%d" , &n , &m ) )
{
scanf ( "%d" , &b );
memset ( x , 0 , sizeof ( x ));
memset ( y , 0 , sizeof ( y ));
for ( int i = 0 ; i < b; i++ )
{
scanf ( "%d" , &u );
x[u] = 1;
}
scanf ( "%d" , &g );
for ( int i = 0 ; i < g; i++ )
{
scanf ( "%d" , &v );
y[v] = 1;
}
int lcm = 100000;
for ( int i = 0 ; i <= lcm ; i ++ )
{
int tx = i%n;
int ty = i%m;
if ( x[tx] || y[ty] )
x[tx] = y[ty] = 1;
}
bool flag = true;
for ( int i = 0 ; i < n ; i++ )
if ( !x[i] ) flag = false;
for ( int i = 0 ; i < m ; i++ )
if ( !y[i] ) flag = false;
if ( flag ) puts ( "Yes");
else puts ( "No");
}
}