题解洛谷P4771(c++解法)八百标兵奔北坡

这是一道非常成功的题目(完全看不出是DP),于是身为蒟蒻的我就开始乱搞~~(乱搞压标算)~~ , 在被样例图示坑到后,我完成了一份成功的暴力,如下

#include
#include
#include
using namespace std;
int e[1005][1005],im[1005][1005];
struct node
{
	int x,y;
}a[100005];
int cnt[1005]={0};
int n,m,k;
int f=0;
int main()
{
	scanf("%d%d%d",&n,&m,&k);
	memset(e,0,sizeof(e));
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++) scanf("%d",&e[i][j]);
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(e[i-1][j]<=e[i][j]&&e[i+1][j]<=e[i][j]&&e[i][j-1]<=e[i][j]&&e[i][j+1]<=e[i][j]) im[i][j]=1;
		}
	}
	for(int i=1;i<=k;i++) scanf("%d%d",&a[i].x,&a[i].y);
	for(int i=1;i<=k;i++)
	{
		f=0;
		for(int j=0;j<=a[i].x;j++)
		{
			for(int k=a[i].y-j;k<=min(m,a[i].y+j);k++)
			{
				if(im[a[i].x-j][k])
				{
					f=1;
					printf("%d\n",j);
					break;
				}
			}
			if(f) break;
		}
		if(!f) printf("Pool Babingbaboom!\n");
	}
	return 0;
}

你可能感兴趣的:(题解洛谷P4771(c++解法)八百标兵奔北坡)