zoukankan      html  css  js  c++  java
  • 10285 Longest Run on a Snowboard

    描述:寻找一个数,从这个数上、下、左、右四个方向寻找一堆数,使之为递增或者递减数列,输出这个数列的个数
    #include <cstdio>
    #include <cstring>
    int n,m,t,sum;
    int arr[110][110],visit[110][110],num[110][110];
    char s[110];
    int max(int x,int y)
    {
        return x>y?x:y;
    }
    int dfs(int x,int y,int pos)
    {
        if(arr[x][y]==-1||arr[x][y]>=pos) return 0;
        if(!visit[x][y])
        {
            visit[x][y]=1;
            int c=arr[x][y];
            num[x][y]=max(max(max(dfs(x+1,y,c),dfs(x,y+1,c)),dfs(x-1,y,c)),dfs(x,y-1,c))+1;
        }
        return num[x][y];
    }
    int main()
    {
      //  freopen("a.txt","r",stdin);
        scanf("%d",&t);
        while(t--)
        {
            scanf("%s %d %d",s,&n,&m);
            memset(arr,-1,sizeof(arr));
            for(int i=1; i<=n; i++)
                for(int j=1; j<=m; j++) scanf("%d",&arr[i][j]);
            memset(visit,0,sizeof(visit));
            memset(num,0,sizeof(num));
            sum=0;
            for(int i=1; i<=n; i++)
                for(int j=1; j<=m; j++)
                    if(!visit[i][j])
                    {
                        visit[i][j]=1;
                        int c=arr[i][j];
                        num[i][j]=max(max(max(dfs(i+1,j,c),dfs(i,j+1,c)),dfs(i,j-1,c)),dfs(i-1,j,c))+1;
                        if(num[i][j]>sum) sum=num[i][j];
                    }
            printf("%s: %d\n",s,sum);
        }
        return 0;
    }


  • 相关阅读:
    02-model设计
    01-开发环境搭建
    04-Uwsgi配置启动Nginx虚拟主机配置
    03-MySQL安装与配置
    02-Nginx配置
    01-Nginx安装
    22-注册、登录、验证登录
    21-django-pure-pagination分页
    (二)windows上使用docker
    Docker在windows7上的安装
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3020152.html
Copyright © 2011-2022 走看看