JAVA——演算法訓練 傳紙條
演算法訓練 傳紙條
import java.util.*;
public class Main {
public static void main(String[] args)
{ Scanner sc=new Scanner(System.in);
int m=sc.nextInt();
int n=sc.nextInt();
int[][] room=new int[m+1][n+1];///存放每位同學的好感度
int[][][][] dp=new int[m+1][n+1][m+1][n+1];
for(int i=1;i<=m;i++)//二維陣列初始化(且不用陣列[0][0])
{
for(int j=1;j<=n;j++)
room[i][j] = sc.nextInt();
}
for(int x1=1;x1<=m;x1++){
for(int y1=1;y1<=n;y1++){
for(int x2=1;x2<=m;x2++){
for(int y2=1;y2<=n;y2++){
//兩個位置相遇了則跳過本次迴圈
if((x1<m||y1<n)&&x1==x2&&y1==y2)
continue;
//相當於從起點到終點找兩條無重複路徑且距離和最大的路徑!!
//比較線路1的前一步值
int compare1=Math.max(dp[x1-1][y1][x2-1][y2],dp[x1-1][y1][x2][y2-1]);//room[x2][y2]在變化
//比較線路2的前一步值
int compare2=Math.max(dp[x1][y1-1][x2-1][y2],dp[x1][y1-1][x2][y2-1]);//room[x1][y1]在變化
//更新最大值
//在上一個最大值的基礎上,再新增兩個點的好感度。也就是每次迴圈都有兩個點(一來一回一起計算)
dp[x1][y1][x2][y2]=Math.max(compare1,compare2)+room[x1][y1]+room[x2][y2];
}
}
}
}
System.out.println(dp[m][n][m][n]);
}
}
相關文章
- 用傳紙條講 HTTPSHTTP
- Unity中利用遺傳演算法訓練MLPUnity演算法
- 藍橋杯 (java)演算法訓練 數對Java演算法
- 演算法訓練 排序演算法排序
- SSD演算法訓練演算法
- java小白訓練營Java
- NOIP2008傳紙條[DP]
- 藍橋杯 演算法訓練 素因子去重(Java)演算法Java
- java工廠模式訓練Java模式
- 藍橋杯 演算法訓練 K好數(Java解題)演算法Java
- 藍橋杯—演算法訓練演算法
- 藍橋杯--演算法訓練演算法
- [Java] 藍橋杯ALGO-117 演算法訓練 友好數JavaGo演算法
- 程式猿的紙條
- Java每日基礎恢復訓練Java
- 長沙Java培訓:JAVA練手專案分享Java
- 用 Java 訓練出一隻“不死鳥”Java
- Java基礎 --- 物件導向綜合訓練Java物件
- LeetCode演算法訓練-回溯總結LeetCode演算法
- Parris:機器學習演算法自動化訓練工具機器學習演算法
- 演算法訓練 字首表示式 (藍橋杯)演算法
- 藍橋杯 演算法訓練 區間k大數查詢 (Java解題)演算法Java
- [藍橋杯][演算法訓練VIP]方格取數演算法
- 【灰藍 Java 訓練】如何處理空值Java
- java大資料開發訓練營--NginxJava大資料Nginx
- java大資料開發訓練營--ImpalaJava大資料
- 傳智播客Java培訓---JDBCJavaJDBC
- 一文講透預訓練模型的改進訓練演算法 ,輕鬆達到State of the Art模型演算法
- SSD演算法程式碼介訓練演算法整體架構演算法架構
- 藍橋杯 演算法訓練 操作格子 (線段樹)演算法
- 演算法競賽入門經典訓練指南 pdf演算法
- 【vjudge訓練記錄】11月個人訓練賽1
- 特斯拉AI主管給你的33條深度學習訓練建議AI深度學習
- acm訓練題ACM
- 【sql】訓練五SQL
- 【sql】訓練四SQL
- 【sql】訓練三SQL
- 【sql】訓練二SQL