加强版逃生
来源:互联网 发布:访客营销效果数据每封 编辑:程序博客网 时间:2024/05/03 07:55
package com.study.dp;import java.util.Scanner;public class test6 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(), m = sc.nextInt();// 地图大小int x = sc.nextInt(), y = sc.nextInt();// 初始化位置int v = sc.nextInt();// 初始血量int c = sc.nextInt();// 血量上限int[][] mat = new int[n + 1][m + 1];// 地图int[][] dp = new int[n + 1][m + 1];// 到达某个点的最大血量// 初始化地图for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {mat[i][j] = sc.nextInt();}}dp[x][y] = v;// 左上出口1,1for (int i = x; i > 0; i--) {for (int j = y; j > 0; j--) {if (i == x && j == y)continue;else if (i == x) {dp[i][j] = dp[i][j + 1] + mat[i][j];} else if (j == y) {dp[i][j] = dp[i + 1][j] + mat[i][j];} else {dp[i][j] = Math.max(dp[i][j + 1], dp[i + 1][j]) + mat[i][j];}if (dp[i][j] > c)dp[i][j] = c;else if(dp[i][j] <=0)dp[i][j] = -100000000;}}// 左下出口 n 1for (int i = x; i <= n; i++) {for (int j = y; j >= 1; j--) {if (i == x && j == y)continue;else if (i == x ) {dp[i][j] = dp[i][j + 1] + mat[i][j];} else if (j == y ) {dp[i][j] = dp[i - 1][j] + mat[i][j];} else {dp[i][j] = Math.max(dp[i][j + 1], dp[i - 1][j]) + mat[i][j];}if (dp[i][j] > c)dp[i][j] = c;else if(dp[i][j] <=0)dp[i][j] = -100000000;}}// 右上出口 1,mfor (int i = x; i >= 1; i--) {for (int j = y; j <= m; j++) {if (i == x && j == y)continue;else if (i == x ) {dp[i][j] = dp[i][j - 1] + mat[i][j];} else if (j == y ) {dp[i][j] = dp[i + 1][j] + mat[i][j];} else {dp[i][j] = Math.max(dp[i][j - 1], dp[i + 1][j]) + mat[i][j];}if (dp[i][j] > c)dp[i][j] = c;else if(dp[i][j] <=0)dp[i][j] = -100000000;}}// 右下出口 n mfor (int i = x; i <= n; i++) {for (int j = y; j <= m; j++) {if (i == x && j == y)continue;else if (i == x ) {dp[i][j] = dp[i][j - 1] + mat[i][j];} else if (j == y ) {dp[i][j] = dp[i - 1][j] + mat[i][j];} else {dp[i][j] = Math.max(dp[i][j - 1], dp[i - 1][j]) + mat[i][j];}if (dp[i][j] > c)dp[i][j] = c;else if(dp[i][j] <=0)dp[i][j] = -100000000;}}int m1 = Math.max(dp[1][1], dp[n][1]);int m2 = Math.max(dp[1][m], dp[n][m]);int max = Math.max(m1, m2);if(max>0)System.out.println(max);elseSystem.out.println(-1);}}
0 0
- 加强版逃生
- 逃生
- 逃生
- 逃生
- 逃生
- 逃生
- 逃生
- 天地逃生
- 洞穴逃生
- 险恶逃生
- 洞穴逃生
- hdu4857(逃生)
- <hdoj4857>逃生
- 洞穴逃生
- 洞穴逃生
- HDU4857逃生
- hdu4857 逃生
- 逃生 HDU
- 继承的学习认识
- oracle数据库及语言类型
- 领域类图(领域模型/概念类图)的绘制
- Tomcat实现session共享
- WindowManager.LayoutParams 属性
- 加强版逃生
- 微软开源分布式高性能GB框架LightGBM MacOS下编译安装过程
- SQL的主键和外键约束
- C++ 宏与内联函数
- JS实现简单的贪吃蛇小游戏
- Session超时时间方式
- 安装jupyter 添加新内核
- android Login sava user and password
- java--监听器