跳跃
本文最后更新于 204 天前,其中的信息可能已经有所发展或是发生改变。

跳跃

 3 5
-4 -5 -10 -3 1
7 5 -9 3 -10
10 -2 6 -10 -4

 

小兰站在一个n行m列的方格中,起初他站在一个第一行第一列。

假设他站在c行r列,他不能走比c行小的行,也不能走比r列小的列,并且步数不能超过三步

他站在第三行第五列,他可以走(3,6)(3,7)(3,8)(4,5)(4,6,)(4,7),(5,5)(5,6)

(6,5)每次跳跃就相应的获得该方格上的权值,求到达终点的的最大权值

* 第一种解法

   
 import java.util.Scanner;
 // 1:无需package
 // 2: 类名必须Main, 不可修改
 public class Main {
   static Scanner scan=new Scanner(System.in);
   static int dx[]={0,0,0,1,1,1,2,2,3};
   static int dy[]={1,2,3,0,1,2,0,1,0};
   static int n=scan.nextInt();
   static int m=scan.nextInt();
   static int max_length=-10000;
   static int number[][]=new int [n][m];
   public static void main(String[] args) {
     for(int i=0;i<n;i++){
      for(int j=0;j<m;j++){
       number[i][j]=scan.nextInt();
      }
    }
     dfs(0,0,number[0][0]);
     //在此输入您的代码...
      System.out.println(max_length);
     scan.close();
  }
   public static void dfs(int i,int j,int length){
    if(i==n-1&&j==m-1){
     max_length=Math.max(length,max_length);
    }
    for(int k=0;k<dx.length;k++){
     int nx=i+dx[k];
     int ny=j+dy[k];
     if(nx>=0&&ny>=0&&nx<n&&ny<m){
      dfs(nx,ny,length+number[nx][ny]);
    }
    } }
 }

 

**第二种解法


import java.util.Scanner;
 // 1:无需package
 // 2: 类名必须Main, 不可修改
 public class Main {
  static Scanner scan=new Scanner(System.in);
  static int n=scan.nextInt();
  static int m=scan.nextInt();
  static int max_length=-10000;
  static int number[][]=new int [n+1][m+1];
    public static void main(String[] args) {
        //在此输入您的代码...
        for(int i=1;i<=n;i++){
          for(int j=1;j<=m;j++){
              number[i][j]=scan.nextInt();
          }
        }
        for(int i=1;i<=n;i++){
          for(int j=1;j<=m;j++){
            number[i][j]+=find_max(i,j);
          }
        }
        System.out.println(number[n][m]+number[1][1]);
        scan.close();
    }
    public static int find_max(int x,int y){
      int max=0;
      for(int i=x;i>=1;i--){
        for(int j=y;j>=1;j--){
        try{ if(!(x==i&&y==j)&&((x-i)+(y-j))<=3&&max<number[i][j]){
            max=number[i][j];
          }
        }
        catch(ArrayIndexOutOfBoundsException e){
            continue;
        }
        }  
      }
      return max;
    }
 }
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇