• sdutoj 2373 Black and white painting( 规律统计计算 3Y )


    Black and white painting

    题目描述

    You are visiting the Centre Pompidou which contains a lot of modern paintings. In particular you notice one painting which consists solely of black and white squares, arranged in rows and columns like in a chess board (no two adjacent squares have the same colour). By the way, the artist did not use the tool of problem A to create the painting.

    Since you are bored, you wonder how many 8 × 8 chess boards are embedded within this painting. The bottom right corner of a chess board must always be white.

    输入

    The input contains several test cases. Each test case consists of one line with three integers n, m and c. (8 ≤ n, m ≤ 40000), where n is the number of rows of the painting, and m is the number of columns of the painting. c is always 0 or 1, where 0 indicates that the bottom right corner of the painting is black, and 1 indicates that this corner is white.

    The last test case is followed by a line containing three zeros.

    输出

    For each test case, print the number of chess boards embedded within the given painting.

    示例输入

    8 8 0
    8 8 1
    9 9 1
    40000 39999 0
    0 0 0

    示例输出

    0
    1
    2
    799700028

      代码:

      

    #include <iostream>
    #include <string>
    #include <algorithm>
    #include <stdio.h>
    #include <string.h>
    
    using namespace std;
    
    int main()
    {
        int n, m, c;
        long long int ans=0;
        int i, j;
    
        while(scanf("%d %d %d", &n, &m, &c)!=EOF)
        {
            if(n==0 && m==0 &&c==0 )
                break;
            ans=0;
            int flag;
            if(c==1) // bai
                flag=1;
            else
                flag=0;
            int dd, ff;
            for(i=m; i>=8; i--)
            {
                if(flag==1)
                {
                    dd=(n-8)/2+1;
                    ans+=dd; flag=0;
                }
                else
                {
                    ff=n-1;
                    if(ff<8)
                    {
                        dd=0;
                        ans+=dd;
                        flag=1;
                    }
                    else
                    {
                        dd=(ff-8)/2+1;
                        ans+=dd; flag=1;
                    }
                }
            }
            printf("%lld
    ", ans );
        }
        return 0;
    }
    
  • 相关阅读:
    10 查看创建表的语句:show create table emp;
    9 常用命令?
    8 如何查看表中的数据?
    7 查看表结构
    构建之法阅读笔记3
    每日汇报
    每周总结
    每日汇报
    每周总结
    每日总结
  • 原文地址:https://www.cnblogs.com/yspworld/p/4266760.html
Copyright © 2020-2023  润新知