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;
    }
  • 相关阅读:
    DAY 5 搜索
    DAY 4 基础算法
    P2114 [NOI2014]起床困难综合症
    UVA10140 Prime Distance
    day 2 DP专场
    DAY 3 数论专场
    day 2 下午 骑士 基环树+树形DP
    day 1 晚上 P2824 [HEOI2016/TJOI2016]排序 线段树
    帝国后台加网站地图
    手风琴效果
  • 原文地址:https://www.cnblogs.com/redips-l/p/8358914.html
Copyright © 2011-2022 走看看