Save the Room
時間限制: 1 Sec 內存限制: 128 MB
提交: 149 解決: 90
[提交] [狀態] [命題人:admin]
題目描述
Bob is a sorcerer. He lives in a cuboid room which has a length of A, a width of B and a height of C, so we represent it as ABC. One day, he finds that his room is filled with unknown dark energy. Bob wants to neutralize all the dark energy in his room with his light magic. He can summon a 112 cuboid at a time to neutralize dark energy. But the cuboid must be totally in dark energy to take effect. Can you foresee whether Bob can save his room or not?
輸入
Input has T test cases. T≤100
For each line, there are three integers A, B, C.
1≤A,B,C≤100
輸出
For each test case, if Bob can save his room, print “Yes”, otherwise print “No”.
樣例輸入
復制樣例數據
1 1 2
1 1 4
1 1 1
樣例輸出
Yes
Yes
No
題目大意:
輸入矩陣的長寬高,問其是否能被1×1×21 \times1 \times21×1×2的矩陣填滿,能輸出Yes,否則No
解題思路:
對于任意一個矩陣,若其有一邊為偶數,我們可以將此邊當作高,因我們可以用1×1×21 \times1 \times21×1×2的矩陣的1×11 \times 11×1的底面填滿目標矩陣的底面,此時其高恰好為222,由于目標矩陣高為偶數,因此其一定能被基礎矩陣填滿。
也可以理解為,若要用1×1×21 \times1 \times21×1×2的矩陣填滿目標矩陣,其體積就一定為偶數。
所以此題僅需判斷所給矩陣三邊中是否有偶數即可。
代碼:
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#include <bitset>
#include <set>
#include <utility>
#include <sstream>
#include <iomanip>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define inf 0x3f3f3f3f
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define lep(i,l,r) for(int i=l;i>=r;i--)
#define ms(arr) memset(arr,0,sizeof(arr))
//priority_queue<int,vector<int> ,greater<int> >q;
const int maxn = (int)1e5 + 5;
const ll mod = 1e9+7;
int main()
{#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);#endif//freopen("out.txt", "w", stdout);//ios::sync_with_stdio(0),cin.tie(0);int a,b,c;while(scanf("%d %d %d",&a,&b,&c)!=EOF) {if((a*b*c)%2==0) printf("Yes\n");else printf("No\n");}return 0;
}