zoukankan      html  css  js  c++  java
  • LibreOJ #527. 「LibreOJ β Round #4」框架

    二次联通门 : LibreOJ #527. 「LibreOJ β Round #4」框架

    /*
        LibreOJ #527. 「LibreOJ β Round #4」框架
    
        %% xxy dalao    
        对于每一个小方格
        统计一下顶边向右延伸出几条边
        左边的边向下延伸出几条边
    
        后枚举每个小方格即可
    */
    #include <cstdio>
    #include <iostream>
    
    const int BUF = 12312313;
    char Buf[BUF], *buf = Buf;
    
    inline void read (int &now)
    {
        for (now = 0; !isdigit (*buf); ++ buf);
        for (; isdigit (*buf); now = now * 10 + *buf - '0', ++ buf);
    }
    
    #define Max 1005
    int h[Max][Max], l[Max][Max], Answer;
    
    int Main ()
    {
        fread (buf, 1, BUF, stdin);
        int N, M, x; read (N), read (M); register int i, j, k;
        for (i = 1; i <= N; ++ i)
            for (j = 1; j < M; ++ j) read (h[i][j]);
        for (i = 1; i < N; ++ i)
            for (j = 1; j <= M; ++ j) read (l[i][j]);
        for (i = 1; i <= N; ++ i)
            for (j = M - 2; j; -- j) 
                if (h[i][j]) h[i][j] += h[i][j + 1];
        for (j = 1; j <= M; ++ j)
            for (i = N - 2; i; -- i) 
                if (l[i][j]) l[i][j] += l[i + 1][j];
        for (i = 1; i < N; ++ i)
            for (j = 1; j < M; ++ j)
                for (k = 1; h[i][j] >= k && l[i][j] >= k; ++ k)    
                    if (h[i + k][j] >= k && l[i][j + k] >= k) ++ Answer;
        printf ("%d", Answer);    
        return 0;
    }
    
    int ZlycerQan = Main ();
    int main (int argc, char *argv[]) {;}
  • 相关阅读:
    1295: [SCOI2009]最长距离
    [vijos p1028] 魔族密码
    HJ浇花
    1060: [ZJOI2007]时态同步
    1816: [Cqoi2010]扑克牌
    1800: [Ahoi2009]fly 飞行棋
    4300: 绝世好题
    1237: [SCOI2008]配对
    1801: [Ahoi2009]chess 中国象棋
    1189: [HNOI2007]紧急疏散evacuate
  • 原文地址:https://www.cnblogs.com/ZlycerQan/p/7469910.html
Copyright © 2011-2022 走看看