上海计算机学会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 的内部,也就是没有任何一块瓷砖凸到地板外部。
例如,下图是一个符合题意的铺设的例子:

请判断 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)
 还没有任何评论哟~ 
