POJ 2029 Get Many Persimmon Trees [dp]

原创 2012年03月30日 19:59:25

题意:

给一个矩阵,里面分布着n个星号。

给定一个小矩阵,问最大可以圈进多少个星号。

思路:

dp方程:

dp1[i][j]=dp1[i-1][j]+dp1[i][j-1]-dp1[i-1][j-1]+a[i][j];//代表从(1,1)到(j,i)圈进的星数。
dp2[i][j]=dp1[i][j]-dp1[i-ty][j]-dp1[i][j-tx]+dp1[i-ty][j-tx];//代表以(j,i)为右下角的小矩阵圈进的星数。

没什么陷阱,1A.



#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a)<(b)?(a):(b))
using namespace std;
const int N=105;
const int inf=(1<<30);
int n,m;
int ty,tx;
int a[N][N];
int dp1[N][N];
int dp2[N][N];
void solve()
{
	int ans=0;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			dp1[i][j]=dp1[i-1][j]+dp1[i][j-1]-dp1[i-1][j-1]+a[i][j];
			dp2[i][j]=dp1[i][j]-dp1[i-ty][j]-dp1[i][j-tx]+dp1[i-ty][j-tx];
			ans=Max(ans,dp2[i][j]);
		}
	}
	printf("%d\n",ans);
}
int main()
{
	int num;
	while(scanf("%d",&num),num)
	{
		memset(a,0,sizeof(a));
		memset(dp1,0,sizeof(dp1));
		memset(dp2,0,sizeof(dp2));
		scanf("%d%d",&m,&n);
		int x,y;
		for(int i=1;i<=num;i++)
		{
			scanf("%d%d",&x,&y);
			a[y][x]=1;	
		}
		scanf("%d%d",&tx,&ty);
		solve();
	}
	return 0;
}


POJ2029:Get Many Persimmon Trees(DP)

Get Many Persimmon Trees Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 2821   A...

poj 2029 Get Many Persimmon Trees (DP)3Ways

//题意:在一个n*m的地图里有N棵树,问h*w面积内最多有多少棵树.\ dp[i][j]表示以(0,0)和(i,j)为对角点的面积中树的个数 #include using namespace s...

POJ 2029--Get Many Persimmon Trees +DP

题意: 在一个w*h宽的矩形中有些位置有树有些位置没有,然后我们需要从中选一个s*t的矩形,使得里面含有的树最多. 思路: 我们将有树位置的值看成1,其它为0,然后成了选一个区域值最大.然后考虑这个...
  • acm_lkl
  • acm_lkl
  • 2015年06月02日 12:33
  • 574

POJ 2029 Get Many Persimmon Trees DP/二维树状数组/线段树

题意:给定一个由坐标系构成的柿子树林,有的坐标点上存在柿子树,有的不存在。现在准备送给你一块土地,土地的长和宽已经确定,怎么选才能使给你的土地上的柿子树最多。 题解:这道题和 2482 Stars ...
  • Tsaid
  • Tsaid
  • 2011年08月30日 20:37
  • 423

POJ2029 Get Many Persimmon Trees

题目链接:http://poj.org/problem?id=2029   二维树状数组+容斥   c[i][j]的意义是(i,j)为右下角的前缀和   注意要向上统计,向下修改   注意区别...
  • wry0112
  • wry0112
  • 2017年07月06日 22:08
  • 70

POJ2029--Get Many Persimmon Trees(枚举+二维树状数组)

暴力枚举起点,然后就是裸的二维树状数组。 #include #include #include #include #include #include #include #include...

poj2029 Get Many Persimmon Trees

Get Many Persimmon Trees Time Limit: 1000MS   Memory Limit: 30000K Total Submissions...

POJ2029--Get Many Persimmon Trees

Description Seiji Hayashi had been a professor of the Nisshinkan Samurai School in the domain of ...
  • a305657
  • a305657
  • 2013年07月25日 19:01
  • 506

[poj 2029]Get Many Persimmon Trees   前缀和+枚举

Get Many Persimmon Trees Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 4020 ...
  • ALPS233
  • ALPS233
  • 2016年04月11日 18:26
  • 2326

POJ 2029 Get Many Persimmon Trees(二维树状数组)

题目链接: POJ 2029 Get Many Persimmon Trees 题意: 给一个width*height的方格,然后有n个点x[i]和y[i]表示在对应的方格位置上有一个点,问在方...
  • Ramay7
  • Ramay7
  • 2016年03月31日 22:06
  • 133
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 2029 Get Many Persimmon Trees [dp]
举报原因:
原因补充:

(最多只允许输入30个字)