zoukankan      html  css  js  c++  java
  • Business Cards

    Problem Description
    Running a paper shop is not an easy job, especially with harsh customers. Today they brought their own rectangular sheets of paper, asking you to cut it into rectangular business cards of specific size.

    Moreover, they require that all the paper (which may not be cheap, but is definitely not that expensive!) has to be used, i.e. no tiny bit may be left over.
    Moreover, the brilliant idea of cutting the sheet into very small pieces, and then gluing them together in desired sheets was laughed at.

    An example of a 9 *6 paper sheet divided into 2 * 3 cards is given below.
     
    Input
    The input contains several test cases. The first line contains the number of test cases t (t <= 10^5). Then t test cases follow. Each of them consists of one line containing four integers a, b, c, d (1 <=a, b, c, d <= 10^9).

    Numbers a and b are dimensions of each business card; c and d are dimensions of the paper sheet.
     
    Output
    For each test case output one line containing word YES if it is possible to divide the whole sheet into business cards, and NO otherwise.
     
    Sample Input
    4 2 3 9 6 2 3 8 6 2 3 6 8 2 3 5 7
     
    Sample Output
    YES YES YES NO
     
    分析:
      好吧,这个是用了枚举,但问题是在使用枚举时,我们一定要知道要枚举的东西是什么,有哪些,要不然还真是没法做。好吧,这个是看了别人的代码才知道要枚举什么的。。。。
    因为所有碎片都是相同的矩形,所以当矩形排列横竖不同时,一行或列会能够整除小矩形的长和宽。
    #include<iostream>
    using namespace std;
    bool jud(int a, int b, int z) {
            int x = 1;
            while(a * x < z) {
                if((z - a * x) % b == 0) {
                    return true;
                }
                x++;
            }
            return false;
    }
    bool judge(int x,int y,int m,int n)
    {
        if(m % x==0 && n % y==0)
            return true;
        if(m % y==0 && n % x==0)
            return true;
        if(m % y==0 && m % x==0 && jud(x,y,n))
            return true;
        if(n % y==0 && n % x==0 && jud(x,y,m))
            return true;
        return false;
    }



    int main()
    {
        int n;
        while(cin>>n)
        {
            while(n--)
            {
                int x,y,m,n;
                cin>>x>>y>>m>>n;
                if(judge(x,y,m,n))
                    cout<<"YES"<<endl;
                else
                    cout<<"NO"<<endl;
            }
        }
        return 0;
    }

  • 相关阅读:
    js页面滚动定位
    函数定义
    __proto__和prototype
    数组操作
    mysql中 group_concat函数在oracle中使用
    字符串里有字典转列表
    处理 Unicode转汉字编码问题
    Key没有引号的K-V格式字符串,怎么转换成Json/dict
    httpx
    appium +夜神模拟器
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/3675438.html
Copyright © 2011-2022 走看看