翻转翻转

翻转翻转

http://www.nowcoder.com/questionTerminal/ad11db28e0f44a1c97af06fd002477a1

题解:

题目难度:二星

考察点: 数形结合,找规律

易错点:

很多同学看到这个题目首先想到可以暴力,但是由于这个题的都太大了,如果暴力的话,无论是时间还是空间上都无法承受,所以这是一种不可取的做法。

解法:数形结合+找规律

首先有一条非常重要的性质:对于一个位置,如果被翻偶数次,它一定维持原来的状态,如果被翻奇数次,则一定跟原来的状态相反。有了这种重要的性质我们可以很容易画图来解决这个问题。
图片说明

显然如图a所示,对于的,它被翻奇数次,所以是。如图b所示,对于的,黄色部分会被翻转偶数次,因此维持原状不变,红色部分会被翻转奇数次,因此状态发生改变,而黄色部分仅为最边上的个,所以答案是。同理,推广到的,红色部分被翻转的次数为次,为奇数,而黄色部分被翻转的次数为偶数,黄色部分为最外面的一圈,所以答案为

#include "bits/stdc++.h"
using namespace std;
typedef long long LL;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--){
        LL n,m;
        scanf("%lld%lld",&n,&m);
        if(n==1&&m==1){
            printf("1\n");
        }else if(n==1){
            printf("%lld\n",m-2);
        }else if(m==1){
            printf("%lld\n",n-2);
        }else{
            printf("%lld\n",(n-2)*(m-2));
        }
    }
    return 0;
}
全部评论

相关推荐

在评审的大师兄很完美:像这种一般就是部门不匹配 转移至其他部门然后挂掉 我就是这样被挂了
点赞 评论 收藏
分享
dongsheng66:如果想进大厂的话,在校经历没必要占这么大篇幅,可以把专业技能单独放一个专栏写,可以加个项目经历
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务