B - fLIP

题目链接:

                   http://code-festival-2017-quala.contest.atcoder.jp/tasks/code_festival_2017_quala_b

解题思路:

          一个棋盘有N行,M列

         设点击i行,则黑色棋子个数为i * M

         设点击j列,则黑色棋子个数为j * N

         设点击i行j列,则由黑转白的棋子个数为2*i*j

         故当点击i行j列时,黑色棋子个数为i * M + j * N - 2 * i * j

         枚举行列得出结果

AC代码

#include
 
int m,n,k;
 
bool slove()
{
    for(int i = 0; i <= n; i++)
        for(int j = 0; j <= m; j++)
        {
            int tmp = i * m + n * j - 2 * i * j;
            if(tmp == k)
                return true;
        }
    return false;
}
 
int main()
{
    while(scanf("%d%d%d",&m,&n,&k) == 3)
    {
        if(slove()) printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}


你可能感兴趣的:(c++,解题报告)