Rikka with Chess
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 521 Accepted Submission(s): 434
Problem Description
Yuta gives Rikka a chess board of size
n×m
.
As we all know, on a chess board, every cell is either black or white and every two cells that share a side have different colors.
Rikka can choose any rectangle formed by board squares and perform an inversion, every white cell becomes black, and vice versa.
Rikka wants to turn all cells into the same color, please tell Rikka the minimal number of inversions she need to achieve her goal.
As we all know, on a chess board, every cell is either black or white and every two cells that share a side have different colors.
Rikka can choose any rectangle formed by board squares and perform an inversion, every white cell becomes black, and vice versa.
Rikka wants to turn all cells into the same color, please tell Rikka the minimal number of inversions she need to achieve her goal.
Input
The first line contains a number
T(T≤10)
——The number of the testcases.
Each testcase contains two numbers n,m(n≤109,m≤109) .
Each testcase contains two numbers n,m(n≤109,m≤109) .
Output
For each testcase, print a single number which represents the answer.
Sample Input
3 1 2 2 2 3 3
Sample Output
1 2 2
Source
Recommend
像这样一幅图,
一次能把一个矩形里边的颜色改变为相反的(红或者黑),矩形可以任意大,问最少需要弄多少次?
如果把第二行全部都变了,会发生什么情况?是不是第二行行和第一行一模一样了?然后把第四行也全部变了,是不是前4行都一模一样了,然后把第二列全部变了,是不是前两列一模一样了,就这样改,是不是m/2+n/2?
#include<stdio.h>
#include<string.h>
int main()
{
int p;
__int64 m,n;
scanf("%d",&p);
while(p--)
{
scanf("%I64d%I64d",&m,&n);
printf("%I64d\n",m/2+n/2);
}
}