zoukankan      html  css  js  c++  java
  • poj 1088 动态规划

    #include <iostream>
    #include <string.h>
    using namespace std;
    
    int ans[101][101];//存储当前位置能得到的最优解
    int map[101][101];//存储当前位置的元素值
    int dir[4][2]={1,0,0,1,-1,0,0,-1};//四个方向,右,上,左,下
    int N,M;
    int max(int a,int b)
    {
        return a>b?a:b;
    }
    int dp(int i,int j)//得到[i,j]位置的最优解
    {
        if(ans[i][j]>0) return ans[i][j];
        //寻找四个方向的局部满足要求的最优解
        int t,tempi,tempj;
        int maxn=0;
        for(t=0;t<4;t++)
        {
            tempi=i+dir[t][0];
            tempj=j+dir[t][1];
            if(tempi>0&&tempi<=N&&tempj>0&&tempj<=M) //不可越界
            {
                if(map[tempi][tempj]<map[i][j])//低于[i,j]
                    maxn=max(maxn,dp(tempi,tempj));
            }
        }
        return ans[i][j]=maxn+1;
    }
    int main()
    {
        while(cin >>N >> M)
        {
            int answer=0;
            int i,j;
            for(i=1;i<=N;i++)
            {
                for(j=1;j<=M;j++)
                {
                    cin >> map[i][j];
                }
            }
            memset(ans,0,sizeof(ans));
            for(i=1;i<=N;i++)
            {
                for(j=1;j<=M;j++)
                {
                    ans[i][j]=dp(i,j);//得到[i,j]位置的最优解
                    answer=max(answer,ans[i][j]);//更新整体最优解
                }
            }
            cout << answer;
        }
        return 0;
    }
  • 相关阅读:
    前端面试题
    js collection
    javascript变量声明提升(hoisting)
    css3动画
    神奇的meta
    wap站bug小结
    前端collection
    js拾遗
    prototype之初印象
    自定义scrollBottom的值
  • 原文地址:https://www.cnblogs.com/lipenglin/p/4386414.html
Copyright © 2011-2022 走看看