poj 2029 (暴力枚举)水题

来源:互联网 发布:舔女生尿道口 知乎 编辑:程序博客网 时间:2024/05/16 12:22

暴力,枚举从位置map[i][j]到map[i+S-1][j+T-1]的局域和,求出最大的就ok了~

代码如下:

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define MAX 111int map[MAX][MAX],sum[MAX][MAX];int N,S,T,W,H;int x,y;int ans;int calsum(int x1,int y1,int x2,int y2){    return sum[x2][y2]-sum[x2][y1-1]-sum[x1-1][y2]+sum[x1-1][y1-1];}void input(){    int i,j;    memset(map,0,sizeof(map));    scanf("%d%d",&W,&H);    for(i=1;i<=N;i++)    {        scanf("%d%d",&x,&y);        map[x][y]=1;    }    scanf("%d%d",&S,&T);}void deal(){    int i,j;    for(i=1;i<=W;i++)    {        for(j=1;j<=H;j++)        {            sum[i][j]=sum[i-1][j]+sum[i][j-1]+map[i][j]-sum[i-1][j-1];        }    }}void work(){    int i,j;    ans=0;    for(i=1;i+S-1<=W;i++)    {        for(j=1;j+T-1<=H;j++)        {            ans=max(ans,calsum(i,j,i+S-1,j+T-1));        }    }    printf("%d\n",ans);}int main(){    int i,j;    while(scanf("%d",&N),N)    {        input();        deal();        work();    }    return 0;}


 

0 0
原创粉丝点击