zoukankan      html  css  js  c++  java
  • Luogu P6476 [NOI Online #2 提高组]涂色游戏

    (large{题目链接})
    (\)

    思路:

    (p_1 > p_2)且存在这样的(n,m)使得 (m imes p_1 < n imes p_2 < (n+k-1) imes p_2 < (m+1) imes p_1),那么为了使这个关系尽可能成立,就要使(n imes p_2 - m imes p_1)尽可能地小,
    根据裴属定理,(n imes p_2 - m imes p_1)最小为(gcd(p_1, p_2))(m imes p_1 < n imes p_2 < (n+k-1) imes p_1 < (m+1) imes p_2)同时除以(gcd(p_1, p_2)),这时(m imes p_1 + 1 = n imes p_2)
    中间的区域就有(dfrac {dfrac {p_{1}}{gcd}-2}{dfrac {p_{2}}{gcd}}+1)个连续涂(p_2)的格子,与(k)比较大小即可。

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    int read() {
    	int x = 0;
    	char c = getchar();
    	for (; !isdigit(c); c = getchar());
    	for (; isdigit(c); c = getchar()) x = x * 10 + c - '0';
    	return x;
    }
    
    int gcd(int x, int y) { return y ? gcd(y, x % y) : x; }
    
    void solve() {
    	int p1, p2, k;
    	p1 = read(), p2 = read(), k = read();
    	if (k == 1) { puts("No"); return; }
    	if (p1 < p2) swap(p1, p2);
    	int g = gcd(p1, p2);
    	p1 /= g, p2 /= g;
    	((p1 - 2) / p2 + 1 >= k) ? puts("No") : puts("Yes");
    }
    
    int main() {
    	int t = read();
    	for (; t; --t) solve();
    	return 0;
    }
    
  • 相关阅读:
    Python第二
    Python第一讲以及计算机基础
    MySQL第五讲
    MySQL第四讲
    MySQL第三讲
    MySQL第一讲概论
    MySQL日常笔记第二讲
    Linux修改用户组
    XAMPP中proftpd的简明配置方法
    解决php configure: error: Cannot find ldap libraries in /usr/lib.错误
  • 原文地址:https://www.cnblogs.com/Miraclys/p/12773207.html
Copyright © 2011-2022 走看看