[Code Festival 2017 qual A] B: flip
题意
给出一个n行m列初始全白的矩阵,每次可以翻转一行/一列的全部格子的颜色.问任意次操作后能否使得恰好有k个黑色格子.
n,m<=1000
分析
显然要么翻转一次要么不翻转.
最终黑色格子数只和被翻转的行数和列数有关,那么n,m这么小,枚举翻转的行数列数即可.
#include<cstdio>
int n,m,k;
int calc(int i,int j){
return i*(m-j)+(n-i)*j;
}
int main(){
scanf("%d%d%d",&n,&m,&k);
bool flag=false;
for(int i=0;i<=n;++i){
for(int j=0;j<=m;++j){
if(calc(i,j)==k)flag=true;
}
}
if(flag)printf("Yes\n");
else printf("No\n");
return 0;
}