额,完全一个预处理的问题,为什么要放在DP里。。。
预处理每一个点对起点为那些的方块产生了影响,对应值+1;
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
int maps[101][101];
struct list
{int x;int y;
}node[10001];
int main()
{int n,i,j,k;int w,h,s,t;while(~scanf("%d",&n)&&n){memset(maps,0,sizeof(maps));scanf("%d%d",&w,&h);for(i=0;i<n;i++){scanf("%d%d",&node[i].x,&node[i].y);}cin>>s>>t;int maxn;maxn=0;for(k=0;k<n;k++){int xx,yy;xx=node[k].x;yy=node[k].y;for(i=xx;i>=0&&i>xx-s;i--){for(j=yy;j>=0&&j>yy-t;j--){maps[i][j]++;maxn=max(maps[i][j],maxn);}}}cout<<maxn<<endl;}return 0;
}