zoukankan      html  css  js  c++  java
  • codevs 1958 刺激

    /*
    这题并不难 思路很简单
    但是 如果记忆化的话 是会跪掉的
    我们可能想到用01维护下次往上还是往下
    但是我们忽略了 “每个的高度不得高于起点高度”
    可能之前记忆化记下的与现在用到的高度不一样 
    */
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int n,m,g[110][110],f[110][110][2],ans,limit;
    int xx[3]={0,0,1};
    int yy[3]={0,1,0};
    int Dfs(int x,int y,int p)
    {
        //if(f[x][y][p]!=1)return f[x][y][p];
        for(int i=1;i<=2;i++)
          {
              int nx=x+xx[i];
            int ny=y+yy[i];
             if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&g[nx][ny]<=limit&&
             ((p==1&&g[nx][ny]>g[x][y])||(p==0&&g[nx][ny]<g[x][y])))
              f[x][y][p]=max(f[x][y][p],Dfs(nx,ny,p^1)+1);
          }
        return f[x][y][p];
    }
    int main()
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
          for(int j=1;j<=m;j++)
            {
              scanf("%d",&g[i][j]);
              f[i][j][0]=f[i][j][1]=1;
            }
        for(int i=1;i<=n;i++)
          for(int j=1;j<=m;j++)
            {
              limit=g[i][j];
              ans=max(ans,Dfs(i,j,1));
              ans=max(ans,Dfs(i,j,0));
            }
        printf("%d
    ",ans);
        return 0;
    }
  • 相关阅读:
    Linux基础知识
    c语言依赖倒转
    ios的认识
    ios数据的基本类型和流程控制
    JavaScript 创建 自定义对象
    《大道至简》读后感
    总结
    字符串转换成整型并求和
    《大道之简》第二章
    SQL Server 2008 数据库自动备份
  • 原文地址:https://www.cnblogs.com/yanlifneg/p/5574174.html
Copyright © 2011-2022 走看看