p2067_枚举tle.cpp

来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· C++ 代码 · 共 30 行

CPP
30 行
字号
#include <stdio.h>
#include <string.h>

int      N , Ans , Sum [101] [101];
char     map [100] [110];

main ()
{
     memset ( Sum , 0 , sizeof ( Sum ));
     
     while ( scanf ( "%d\n" , &N ) != EOF ) {
           for ( int i = 0; i < N; i ++ ) gets ( map [i] );
           for ( int i = 1; i <= N; i ++ )
               for ( int j = 1; j <= N; j ++ )
                   Sum [i] [j] = map [i - 1] [j - 1] == '#' ? 1 : 0;
           for ( int i = 1; i <= N; i ++ )
               for ( int j = 1; j <= N; j ++ )
                   Sum [i] [j] += Sum [i - 1] [j] + Sum [i] [j - 1] - Sum [i - 1] [j - 1];
           Ans = 0;
           for ( int i = 1; i <= N; i ++ )
               for ( int j = 1; j <= N; j ++ )
                   for ( int p = i; p <= N && map [p - 1] [j - 1] == '.'; p ++ )
                       for ( int q = j; q <= N; q ++ ) {
                           if ( Sum [p] [q] - Sum [i - 1] [q] - Sum [p] [j - 1] + Sum [i - 1] [j - 1] ) break;
                           Ans ++;
                       }
           printf ( "%d\n" , Ans );
     }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?