题目表述:
小明要到商店里买一个黑白棋棋盘,n*m 的棋盘上黑白相间,小明有一个特异功能:一次能将一个矩阵里的颜色翻转(即把该矩阵内所有黑的变成白的,白的变成黑的),但小明每天只能使用c 次超能力。小明会买这个棋盘当且仅当该棋盘可以变成单色的(可以是1*1只有一个格子的或者是可以通过超能力变成同一颜色的,黑色白色不限)。
输入有一个整数T,表明有多少组测试数字,后面跟着T行,每行有n, m, c 三个整数;
输出有T行,分别表示该组数字是否满足要求,“Yes”表示满足,“No”表示不满足。
代码如下:
#include<iostream>
const int T = 10;
using namespace std;
int main(){
int n, m, c;
cin >> n;
int p[T][3];
string *s = new string[n]; // 建立动态数组存储 Yes 或 No
for (int i = 0; i < n; ++i)
cin >> p[i][0] >> p[i][1] >> p[i][2]; // 输入
for (int i = 0; i < n; ++i){
int t = p[i][0] / 2 + p[i][1] / 2; // 实际需要的最大变换次数
if (p[i][2] >= t)
s[i] = "Yes";
else
s[i] = "No";
}
for (int i = 0; i < n; ++i)
cout << s[i] << endl;
delete [] s;
return 0;
}