• 南阳10Sking 类似poj1088


    import java.io.BufferedInputStream;
    import java.util.Scanner;
    public class poj1088 {
    static int vis[][];//应该每次初始化。。。。wa了好多次

    public static void main(String[] args) {
    Scanner cin = new Scanner(new BufferedInputStream(System.in));
    int n=cin.nextInt();
    while(n-->0){
    int r = cin.nextInt();
    int c = cin.nextInt();
    vis=new int [110][110];
    int tem=0,max=0;
    int a[][] = new int [110][110];
    for(int i=1;i<=r;i++)
    for(int j=1;j<=c;j++)
    a[i][j]=cin.nextInt();
    for(int i=1;i<=r;i++)
    for(int j=1;j<=c;j++){
    tem=f(a,a[i][j],i,j,r,c);
    max=max>tem?max:tem;
    //if(tem>max) max=tem;
    }
    System.out.println(max);
    }
    }
    private static int f(int[][] ar, int a2, int i, int j,int r,int c) {
    int max=0,tem=0;
    if(i<1||j<1||i>r||j>c)
    return 0;
    if(vis[i][j]!=0)
    return vis[i][j];
    if(ar[i][j]>ar[i-1][j]){
    tem=f(ar,ar[i-1][j],i-1,j,r,c);
    max=tem;
    }
    if(ar[i][j]>ar[i+1][j]){
    tem=f(ar,ar[i+1][j],i+1,j,r,c);
    //if(tem>max) max=tem;
    max=max>tem?max:tem;
    }
    if(ar[i][j]>ar[i][j-1]){
    tem=f(ar,ar[i][j-1],i,j-1,r,c);
    //if(tem>max) max=tem;
    max=max>tem?max:tem;
    }
    if(ar[i][j]>ar[i][j+1]){
    tem=f(ar,ar[i][j+1],i,j+1,r,c);
    //if(tem>max) max=tem;
    max=max>tem?max:tem;
    }
    return vis[i][j]=max+1;
    }

    }

  • 相关阅读:
    C# 设计模式-状态模式
    C# 设计模式-备忘录模式
    C# 设计模式-命令模式
    本地易优安装总结
    视频自动添加字幕
    百度商桥安装
    百度统计
    模板
    百度地图API
    栅格布局的理解
  • 原文地址:https://www.cnblogs.com/qjack/p/3248896.html
Copyright © 2020-2023  润新知