解题思路:

注意事项:

参考代码:

import java.util.Scanner;

public class Main {
   public static void main(String[] args) {
           Scanner scanner = new Scanner(System.in);
           int m = scanner.nextInt();
           int n = scanner.nextInt();
           int g[][] = new int[n][m];
           int dx[] = {0,0,-1,1};
           int dy[] = {1,-1,0,0};
           int ans = 0, res= 0, sum = 0;
           for(int i = 0 ; i < n ; i ++){
               for(int j = 0; j < m; j ++){
                   g[i][j] =scanner.nextInt();
                   sum += g[i][j];
               }
           }
           sum /= 2;
           int v[][] = new int[n][m];
           int x = 0, y = 0;
           while(true){
               v[x][y] = 1;
               res += g[x][y];
               ans ++;
               if(res == sum){
                   System.out.println(ans);
                   return;
               }
               int maxNum = 0, mx = x, my = y;
               for(int i = 0 ; i < 4; i ++){
                   int tx = x + dx[i];
                   int ty = y + dy[i];
                   if(tx >= 0 && tx < n && ty >= 0 && ty < m && v[tx][ty] == 0 && res + g[tx][ty] > maxNum && res + g[tx][ty] <= sum){
                       maxNum = res + g[tx][ty];
                       mx = tx;
                       my = ty;
                   }
               }
               x = mx;
               y = my;
           }
   }

}

点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论