WY70. 翻转翻转
描述
给定一个N*M的矩阵,在矩阵中每一块有一张牌,我们假定刚开始的时候所有牌的牌面向上。输入描述
输入的第一行为测试用例数t(1 <= t <= 100000),输出描述
对于每个用例输出包含一行,输出牌面向下的块的个数示例1
输入:
5 1 1 1 2 3 1 4 1 2 2
输出:
1 0 1 2 0
C 解法, 执行用时: 30ms, 内存消耗: 2072KB, 提交时间: 2021-08-01
#include<stdio.h> int main() { long long t,n,m,num,i; scanf("%lld",&t); //while(~scanf("%lld",&t)) { for(i=0;i<t;i++) { scanf("%lld %lld",&n,&m); { if(n>=3&&m>=3) { num=(n-2)*(m-2); } else if(n==2||m==2) { num=0; } else if(n==1&&m>2) { num=m-2; } else if(n>2&&m==1) { num=n-2; } else if (m==1&&n==1)num=1; else num = (n-2)*(m-2); } printf("%lld\n",num); } } return 0; }
C++ 解法, 执行用时: 30ms, 内存消耗: 2168KB, 提交时间: 2021-08-08
#include "bits/stdc++.h" using namespace std; int main() { int t; cin >> t; while(t--) { long long N,M; scanf("%lld %lld",&N,&M); if(N == 1 && M == 1) printf("%lld\n",1); else if(N == 1 && M != 1) printf("%lld\n",M-2); else if(N != 1 && M == 1) printf("%lld\n",N-2); else printf("%lld\n",(M-2)*(N-2)); } return 0; }