zoukankan      html  css  js  c++  java
  • poj 1088 滑雪问题

     滑雪问题 



    import java.util.Scanner;
    public class Main{
    	static int a[][],r,c;
        public static void main(String [] args){
            Scanner input=new Scanner(System.in);
            
            while(input.hasNext()){
            	r=input.nextInt();
            	c=input.nextInt();
            	a=new int[r][c];
            	int b[][]=new int[r][c];
            	int min=Integer.MIN_VALUE;
            	for(int i=0;i<r;i++){
            		for(int j=0;j<c;j++){
            			a[i][j]=input.nextInt();
            		}
            	}
            	int sum=1;
            	for(int i=0;i<r;i++){
            		for(int j=0;j<c;j++){
            			b[i][j]=sou(i,j,sum,b);
            			if(b[i][j]>min)
            				min=b[i][j];
            		}
            	}
            	System.out.println(min);
            }
        }
    	private static int sou(int i, int j, int sum,int b[][]) {
    		int e=1;
    		if(j+1<c&&a[i][j]>a[i][j+1]){
    			if(b[i][j+1]>0){
    				//return sum+b[i][j+1];
    				int num=sum+b[i][j+1];
    				if(num>e)
    					e=num;
    			}
    			else{
    				//return sum+sou(i,j+1,sum,b);
    				int num=sum+sou(i,j+1,sum,b);
    				if(num>e)
    					e=num;
    			}
    		}
    		if(i+1<r&&a[i][j]>a[i+1][j]){
    			if(b[i+1][j]>0){
    				//return sum+b[i+1][j];
    				int num=sum+b[i+1][j];
    				if(num>e)
    					e=num;
    			}
    			else{
    				//return sum+sou(i+1,j,sum,b);
    				int num=sum+sou(i+1,j,sum,b);
    				if(num>e)
    					e=num;
    			}
    		}
    		if(j-1>=0&&a[i][j]>a[i][j-1]){
    			if(b[i][j-1]>0){
    				//return sum+b[i][j-1];
    				int num=sum+b[i][j-1];
    				if(num>e)
    					e=num;
    			}
    			else{
    				//return sum+sou(i,j-1,sum,b);
    				int num=sum+sou(i,j-1,sum,b);
    				if(num>e)
    					e=num;
    			}
    		}
    		if(i-1>=0&&a[i][j]>a[i-1][j]){
    			if(b[i-1][j]>0){
    				//return sum+b[i-1][j];
    				int num=sum+b[i-1][j];
    				if(num>e)
    					e=num;
    			}
    			else{
    				//return sum+sou(i-1,j,sum,b);
    				int num=sum+sou(i-1,j,sum,b);
    				if(num>e)
    					e=num;
    			}
    		}
    		
    		return e;
    	}
    }


  • 相关阅读:
    面试随缘刷题--day7
    面试随缘刷题--day6
    面试随缘刷题--day5
    面试随缘刷题--day4
    面试随缘刷题--day3 二分专题
    Python 将普通图片转字符画
    相离的圆(排序+二分查找)
    Java利用图灵机器人接口实现简单的聊天程序
    正整数分组(动态规划)
    循环数组最大子段和(动态规划)
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3170163.html
Copyright © 2011-2022 走看看