[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
");
  else printf("No
");
  return 0;
}

原文地址:https://www.cnblogs.com/liu-runda/p/7585271.html