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;
    	}
    }


  • 相关阅读:
    最大流EK算法/DINIC算法学习
    hdu-3065-AC自动机
    51nod-1636-dp
    nyoj-1316-二分
    HDU-4510-日期
    HDU-2896-AC自动机
    51nod-1385-贪心-构造
    SpringMVC实现Restful风格的WebService
    SpringMVC使用中遇到的问题总结
    Boostrap(3)
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3170163.html
Copyright © 2011-2022 走看看