poj2029Get Many Persimmon Trees(最大矩阵和)
类似最大矩阵 sum存下 枚举最大就是
1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<stdlib.h> 6 using namespace std; 7 int sum[110][110],o[110][110]; 8 int main() 9 { 10 int i,j,n,w,h,a,b; 11 while(scanf("%d",&n)&&n) 12 { 13 scanf("%d%d",&h,&w); 14 memset(o,0,sizeof(o)); 15 memset(sum,0,sizeof(sum)); 16 for(i = 1; i <= n ;i++) 17 { 18 scanf("%d%d",&a,&b); 19 o[b][a] = 1; 20 } 21 int s,t; 22 scanf("%d%d",&s,&t); 23 for(i = 1; i <= w ; i++) 24 for(j = 1; j <= h ; j++) 25 sum[i][j] = sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+o[i][j]; 26 int ans = 0; 27 for(i = t; i <= w ; i++) 28 for(j = s ; j <= h ; j++) 29 ans = max(ans,sum[i][j]-sum[i-t][j]-sum[i][j-s]+sum[i-t][j-s]); 30 printf("%d\n",ans); 31 } 32 return 0; 33 }