zoukankan      html  css  js  c++  java
  • HDU4517

    开一个二维数组记录星号的个数。。。。

    View Code
     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<algorithm>
     4 using namespace std;
     5 const int maxn = 2005;
     6 int sum[ maxn ][ maxn ];//sum[i][j]:记录从mat 1 1到mat i j 的“ * ”的个数
     7 int mat[ maxn ][ maxn ];
     8 char s[ maxn ];
     9 int main(){
    10     int n,m;
    11     while( scanf("%d%d",&n,&m)==2 ){
    12         if( n==0||m==0 ) break;
    13         int x,y;
    14         scanf("%d%d",&x,&y);
    15         memset( sum,0,sizeof( sum ) );
    16         //memset( mat,0,sizeof( mat ) );//这个memset没有作用,会超时!!!!
    17         int tt;
    18         for( int i=1;i<=n;i++ ){
    19             scanf("%s",1+s);
    20             tt=0;
    21             for( int j=1;j<=m;j++ ){
    22                 if( s[ j ]=='*' ){
    23                     mat[ i ][ j ] = 1;
    24                     tt++;
    25                 }
    26                 sum[ i ][ j ] = tt+sum[ i-1 ][ j ];
    27             }
    28         }
    29         /*
    30         for( int i=1;i<=n;i++ ){
    31             for( int j=1;j<=m;j++ ){
    32                 printf("%d ",sum[i][j]);//sum[ i ][ j ] = mat[ i ][ j ]+sum[ i-1 ][ j ]+sum[ i ][ j-1 ]-sum[ i-1 ][ j-1 ];
    33             }
    34             printf("\n");
    35         }
    36     */
    37         int cnt = 0;
    38         int res ;
    39         for( int i=1;i<=n;i++ ){
    40             for( int j=1;j<=m;j++ ){
    41                 res = sum[ i+x-1 ][ j+y-1 ]-sum[ i+x-1 ][ j-1 ]-sum[ i-1 ][ j+y-1 ]+sum[ i-1 ][ j-1 ];
    42                 if( res==x*y ) cnt ++;
    43                 if( x!=y ) {
    44                     res = sum[ i+y-1 ][ j+x-1 ]-sum[ i+y-1 ][ j-1 ]-sum[ i-1 ][ j+x-1 ]+sum[ i-1 ][ j-1 ];
    45                     if( res==x*y ) cnt ++;
    46                 }
    47             }
    48         }
    49         printf("%d\n",cnt);
    50     }
    51     return 0;
    52 }
    keep moving...
  • 相关阅读:
    高斯消元算法
    Fermat小定理的证明
    Pollard Rho 算法简介
    做一些无聊的题
    永远不要相信自己的傲慢
    笔记-数据结构进阶
    笔记-区间问题
    线段树板子
    [DarkBZOJ3694] 最短路
    [CF321D] Ciel and Flipboard
  • 原文地址:https://www.cnblogs.com/xxx0624/p/2977787.html
Copyright © 2011-2022 走看看