cf1091div2 C.Grid Covering(数论)

Problem - C - Codeforces

保证遍历完每行每列所以gcd(n,a)==1,gcd(m,b)==1很好理解

为了遍历所有网格,因为在2*lcm(n,m)次数后会再次踏上轮回重复循环,此时访问了2*lcm(n,m)个格子,于是 2*lcm(n,m)>=n*m,也就是2*lcm>=gcd(n,m)*lcm(n,m)。所以 gcd(n,m)<=2

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
#define ll  long long
#define endl '\n'

const int N=2e5+10;
int n,m,a,b;

int gcd(int a,int b) {
    return b==0?a:gcd(b,a%b);
}
void solve() {
    cin>>n>>m>>a>>b;

    if (gcd(n, a) == 1 && gcd(m, b) == 1&&gcd(n,m)<=2 ){
        cout<<"YES"<<endl;
    }
    else {
        cout<<"NO"<<endl;
    }
}
int main() {

    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int t=1;
    cin>>t;
    while(t--){solve();}

    return 0;
}
相关推荐
洛水水3 分钟前
【力扣100题】85.每日温度
算法·leetcode·职场和发展
Coder-magician7 分钟前
《代码随想录》刷题打卡day15:二叉树part05
数据结构·c++·算法
Kurisu_红莉栖8 分钟前
力扣56合并区间
算法·leetcode
Irissgwe14 分钟前
算法的时间复杂度和空间复杂度
数据结构·c++·算法·c·时间复杂度·空间复杂度
随意起个昵称15 分钟前
区间dp-基础题目3(永别)
c++·算法
周末也要写八哥21 分钟前
有向图Hierholzer算法的另一种实现
算法
bIo7lyA8v24 分钟前
算法调优中的性能回归与基准测试分析的技术8
算法·数据挖掘·回归
有点。25 分钟前
C++贪心算法二(练习题)
c++·算法·贪心算法
西安邮电大学30 分钟前
贪心算法详细讲解
java·后端·其他·算法·面试
开源Z30 分钟前
LeetCode 135 · 分发糖果:两次扫描,先左后右取最大
算法·leetcode