Advertisement

上海计算机学会2025年1月月赛C++乙组T1铺设地板

阅读量:

铺设地板

内存限制: 256 Mb时间限制: 1000 ms

题目描述

Alice 有一块长为 L,宽为 W 的矩形地板 R,她想用一些矩形瓷砖 R1​,R2​,⋯,Rk​(k≥1)来铺设这块地板。为了完美地铺设这块地板,Alice 希望每块瓷砖 Ri​ 的长、宽都是正整数,且其周长不能被 4 整除

在此基础上,R 能被 R1​,R2​⋯,Rk​ 铺设,指的是将这些瓷砖以某种方式放在 R 上,满足 R 的每个位置都恰好被一块瓷砖覆盖(这也意味着任意两块瓷砖 Ri​,Rj​ 在 i≠​j 的时候不应该重叠),且每块瓷砖 Ri​ 都应该完全放置在 R 的内部,也就是没有任何一块瓷砖凸到地板外部。

例如,下图是一个符合题意的铺设的例子:
1.png

请判断 Alice 是否能够对她的地板 R 完成上述铺设。

输入格式

第一行一个整数 T 表示数据组数。

对于每组数据,一行两个整数 W,L 表示地板的宽和长。

输出格式

对于每组数据,如果能达成目标,输出一行 YES,否则输出一行 NO

数据范围

对于 30% 的数据,1≤W,L≤4。

对于 60% 的数据,1≤W,L≤5000。

对于 100% 的数据,1≤T≤10000,1≤W,L≤10^9。

样例数据

输入:
3
4 6
2 5
3 3
输出:
YES
YES
NO
说明:
对于第一组数据,地板的尺寸的 46,可以用两块长宽分别为 61,6*3的瓷砖完成铺设。

解析:因为题目要求周长不能被4整除,则长加宽不能是偶数,则有:

1.WL都是偶数可以

2.有一个奇数可以

3.有两个奇数不可以

详见代码:

复制代码
 #include<bits/stdc++.h>

    
 using namespace std;
    
 int t, w, l;
    
 int main() {
    
     cin >> t;
    
     while(t--) {
    
     cin >> w >> l;
    
     if (w % 2 + l % 2 == 0) {//都是偶数
    
         cout << "YES" << endl;
    
     } else if (w % 2 + l % 2 == 1) {//其中一个是奇数
    
         cout << "YES" << endl;
    
     } else {//两个都是奇数
    
         cout << "NO" << endl;
    
     }
    
     }
    
     return 0;
    
 }
    
    
    
    

全部评论 (0)

还没有任何评论哟~