首页 > 试题广场 >

翻转翻转

[编程题]翻转翻转
  • 热度指数:5465 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个N*M的矩阵,在矩阵中每一块有一张牌,我们假定刚开始的时候所有牌的牌面向上。
现在对于每个块进行如下操作:
> 翻转某个块中的牌,并且与之相邻的其余八张牌也会被翻转。
XXX
XXX
XXX
如上矩阵所示,翻转中间那块时,这九块中的牌都会被翻转一次。
请输出在对矩阵中每一块进行如上操作以后,牌面向下的块的个数。

数据范围:

输入描述:
输入的第一行为测试用例数t(1 <= t <= 100000),
接下来t行,每行包含两个整数N,M(0 <= N, M <= 1,000,000,000)


输出描述:
对于每个用例输出包含一行,输出牌面向下的块的个数
示例1

输入

5
1 1
1 2
3 1
4 1
2 2

输出

1
0
1
2
0
头像 牛客题解官
发表于 2020-06-05 18:42:06
精华题解 题解: 题目难度:二星 考察点: 数形结合,找规律 易错点: 很多同学看到这个题目首先想到可以暴力,但是由于这个题的和都太大了,如果暴力的话,无论是时间还是空间上都无法承受,所以这是一种不可取的做法。 解法:数形结合+找规律 首先有一条非常重要的性质:对于一个位置,如果被翻偶数次,它一定维持原来的状 展开全文
头像 xuheding
发表于 2022-09-02 17:58:47
#include<iostream> #include<climits> #include<vector> #include<algorithm> #include<numeric> #include <string> 展开全文
头像 恒成立
发表于 2021-09-18 20:33:25
import java.util.*; public class Main{ public static void main(String args[]){ Scanner sc = new Scanner(System.in); int num = sc 展开全文
头像 c小白进击之路
发表于 2021-04-14 10:28:05
当m==n==1时,结果是1 其他状态为求蓝色部分 蓝色部分=(m-2)*(n-2) #include<stdio.h> #include<math.h> int main() {     long long t,n,m; &nb 展开全文