// write your code here cpp
/*
1、本题使用递归的核心在于处理边界问题
2、本文处理的时候 存储方式如下
65535 65535 65535 65535
65535 实体值 实体值 65535
65535 实体值 实体值 65535
65535 65535 65535 65535
四周的值都比较大使得其不可越界
*/
#include<iostream>
#include<vector>
#include<algorithm>
int dp[102][102];
#define M 10086;
using namespace std;
int mm =0 ;
void compute(int x, int y, int n)
{
int t;
t=dp[x][y];
if(t<=dp[x-1][y]&&t<=dp[x+1][y]&&t<=dp[x][y-1]&&t<=dp[x][y+1])
{
mm=mm>n? mm:n;
return ;
}
if(t>dp[x-1][y])
compute(x-1,y,n+1);
if(t>dp[x+1][y])
compute(x+1,y,n+1);
if(t>dp[x][y-1])
compute(x,y-1,n+1);
if(t>dp[x][y+1])
compute(x,y+1,n+1);
return;
}
int main()
{
int m =0, n =0;
while( cin >>m >> n)
{
for(int i =0; i<=101
滑雪问题(动态规划)
最新推荐文章于 2025-05-29 09:57:06 发布