zoukankan      html  css  js  c++  java
  • 20140708 testC 模拟

    最水的一道题>_<

    首先 x=0 时输出白格子个数就好 ans=n*m/2

    x>0 时 即为输出颜色为 x-1 的格子

    对于颜色为x的格子

    他一定存在于边长为 n-2x 和 m-2x 的矩形边上 且个数为 周长/2

    画图即可发现

    也即 ans=n+m-4x-2

    若 n-2x 或 m-2x 特殊判断 ans=(n*m+1)/2

    详见代码 >_<

     1 #include <cstdio>
     2 using namespace std;
     3 typedef long long LL;
     4 
     5 int main() {
     6     freopen("testC.in","r",stdin);
     7     freopen("testC.out","w",stdout);
     8     LL n,m,x;
     9     scanf("%I64d%I64d%I64d",&n,&m,&x);
    10     LL ans;
    11     if (x==0) {
    12         ans=n*m/2;
    13     }
    14     else {
    15         x--;
    16         n-=2*x;
    17         m-=2*x;
    18         if (n<=0 || m<=0) ans=0;
    19         else {
    20             if (n==1 || m==1) ans=(n*m+1)/2;
    21             else ans=m+n-2;
    22         }
    23     }
    24     if (ans<0) ans=0;
    25     printf("%I64d",ans);
    26 }
    View Code
  • 相关阅读:
    STM8s在利用库配置端口的小问题
    ABAP调试
    READ TABLE 的用法
    人在低谷
    力扣 两数之和
    未来选择
    选择
    室友问题该如何解决呢?
    力扣 两数之和
    谈谈自己
  • 原文地址:https://www.cnblogs.com/fjmmm/p/3832066.html
Copyright © 2011-2022 走看看