poj 2029 Get Many Persimmon Trees 各种解法都有,其实就是瞎搞不算吧是dp

2023-05-18,,

连接:http://poj.org/problem?id=2029

题意:给你一个map,然后在上面种树,问你h*w的矩形上最多有几棵树~这题直接搜就可以。不能算是DP

用树状数组也可作。

 #include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#include <set>
#include <queue>
#include <stack>
#define loop(s,i,n) for(i = s;i < n;i++)
#define cl(a,b) memset(a,b,sizeof(a))
using namespace std;
const int MAX = ;
int map[MAX][MAX];
int dp[MAX][MAX]; int main(){
int n, i, j, ii, jj;
int W, H, w, h;
while(cin >> n && n){
memset(map, , sizeof(map));
memset(dp, , sizeof(dp));
cin >> W >> H;
while(n --){
int x, y;
cin >> x >> y;
map[y][x] = ;
}
cin >> w >> h;
for(i = ; i <= H; i ++)
for(j = ; j <= W; j ++)
dp[i][j] = dp[i-][j] + dp[i][j-] - dp[i-][j-] + map[i][j];
int ans = ;
for(i = ; i <= H; i ++)
for(j = ; j <= W; j ++){
ii = i - h + ;
jj = j - w + ;
if(ii < || jj < ) continue;
ans = max(ans, dp[i][j] - dp[ii-][j] - dp[i][jj-] + dp[ii-][jj-]);
}
cout << ans << endl;
}
return ;
}

poj 2029 Get Many Persimmon Trees 各种解法都有,其实就是瞎搞不算吧是dp的相关教程结束。

《poj 2029 Get Many Persimmon Trees 各种解法都有,其实就是瞎搞不算吧是dp.doc》

下载本文的Word格式文档,以方便收藏与打印。