国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

藍橋杯 算法提高 合并石子

2019-11-09 20:09:22
字體:
供稿:網(wǎng)友

算法提高 合并石子  時間限制:2.0s   內(nèi)存限制:256.0MB    問題描述  在一條直線上有n堆石子,每堆有一定的數(shù)量,每次可以將兩堆相鄰的石子合并,合并后放在兩堆的中間位置,合并的費用為兩堆石子的總數(shù)。求把所有石子合并成一堆的最小花費。輸入格式  輸入第一行包含一個整數(shù)n,表示石子的堆數(shù)。  接下來一行,包含n個整數(shù),按順序給出每堆石子的大小 。輸出格式  輸出一個整數(shù),表示合并的最小花費。樣例輸入51 2 3 4 5樣例輸出33數(shù)據(jù)規(guī)模和約定  1<=n<=1000, 每堆石子至少1顆,最多10000顆。可以看看我原來詳解的區(qū)間DP:http://blog.csdn.net/QQ_25605637/article/details/50456239

90分超時

import java.util.Scanner;public class Main {		public static void main(String[] args) {		Scanner in = new Scanner(System.in);		int n = in.nextInt();		int[] a = new int[1010];		int[][] temp = new int[1010][1010];		int[][] dp = new int[1010][1010];		for(int i=1; i<=n; i++) {			a[i] = in.nextInt();			temp[i][i] = a[i];		}		for(int i=1; i<n; i++) {			for(int j=i+1; j<=n; j++) {				temp[i][j] = temp[i][j-1] + a[j];			}		}		for(int r=2; r<=n; r++) {			for(int i=1; i<=n-r+1; i++) {				int j=i+r-1;				dp[i][j] = Integer.MAX_VALUE;				for(int k=i; k<j; k++) {					if(dp[i][j] > dp[i][k] + dp[k+1][j])						dp[i][j] = dp[i][k] + dp[k+1][j];				}				dp[i][j] += temp[i][j];			}		}		System.out.PRintln(dp[1][n]); 	}}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 茌平县| 洛宁县| 称多县| 湄潭县| 长丰县| 乡宁县| 凤山市| 甘谷县| 武穴市| 剑河县| 黎平县| 潞西市| 西贡区| 桦甸市| 全椒县| 承德市| 车致| 和硕县| 临沧市| 金寨县| 琼海市| 包头市| 全南县| 萨嘎县| 平塘县| 广河县| 孟连| 朔州市| 马关县| 烟台市| 禹城市| 屏边| 长葛市| 黎城县| 开远市| 怀仁县| 宜丰县| 塔城市| 上虞市| 陕西省| 古浪县|