zoukankan      html  css  js  c++  java
  • hiho 1476

    题目链接

    如图所示,在由N行M列个单位正方形组成的矩形中,有K个单位正方形是黑色的,其余单位正方形是白色的。  

    你能统计出一共有多少个不同的子矩形是完全由白色单位正方形组成的吗?

    ----------------------------------------------------------------------------------------------------

    思路:

    完全白色矩形数目 = 总个数 - 包含黑块的矩形数目。

    包含黑块的矩形数目 = 包含一个黑块 - 包含两个黑块 + 包含三个黑块……

    #include <cstdio>
    #include <cstring>
    #define MAX(a,b) (a>b?a:b)
    #define MIN(a,b) (a<b?a:b)
    #define OO 11111
    int coords[1111][2];
    int main(){
        long long m,n;
        int left,right,top,bottom;
        int k,cnt,curs;
        while(scanf("%lld%lld%d",&n,&m,&k)!=EOF){
            for(int i=0;i<k;i++) scanf("%d %d",&coords[i][0],&coords[i][1]);
            long long ret = n*(n+1)/2*m*(m+1)/2;
            for(int s=1;s<(1<<k);s++) {
                 curs=s; cnt=0;
                 left=top=OO;
                 right=bottom=-OO;
                 for(int i=0;i<k;i++){
                     if(curs&1){
                        cnt++;
                        left=MIN(left,coords[i][1]);
                        right=MAX(right,coords[i][1]);
                        top=MIN(top,coords[i][0]);
                        bottom=MAX(bottom,coords[i][0]);    
                    }
                    curs>>=1;
                 }
                 int sgn=(cnt%2)?(-1):1;
                 ret += sgn*left*top*(n+1-bottom)*(m+1-right);
            }
            printf("%lld
    ",ret);
        }
        return 0;
    }
  • 相关阅读:
    Leetcode 12. Integer to Roman
    Leetcode 133. Clone Graph
    Leetcode 199. Binary Tree Right Side View
    Leetcode 200. Number of Islands
    React通过Ajax获取数据
    canvas鼠标点击划线
    制作图片墙
    CSS制作翻牌特效
    输入框制作方法
    初来咋到
  • 原文地址:https://www.cnblogs.com/redips-l/p/8358914.html
Copyright © 2011-2022 走看看