1. 程式人生 > >nyoj 737 石子合併(一)

nyoj 737 石子合併(一)

#include<string.h>
#include<stdio.h>
#include<algorithm>
using namespace std;
#define INF 0x3fffffff
int a[205],dp[205][205],sum[205];
int main()
{
	int n,i,j;
	while(scanf("%d",&n)!=EOF)
	{
		sum[0]=0;
		for(i=1;i<=n;i++)
		{
			scanf("%d",&a[i]);
			dp[i][i]=0;
			sum[i]=sum[i-1]+a[i];
		}	
		for(int L=2;L<=n;L++)
			for(i=1;i<=n-L+1;i++)
			{
				j=i+L-1;
				dp[i][j]=INF;
				for(int k=i;k<=j;k++)
					dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]);
			}
		printf("%d\n",dp[1][n]);
	}
	return 0;
}        

相關推薦

nyoj 737 石子合併

#include<string.h> #include<stdio.h> #include<algorithm> using namespace std; #define INF 0x3fffffff int a[205],dp[205][205],sum[205]; in

nyoj 737 石子合併 【區間dp】

石子合併(一) 時間限制:1000 ms  |  記憶體限制:65535 KB 難度:3 描述    有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次

nyoj 737 石子合併 區間動規

描述    有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次將相鄰的兩堆石子堆成一堆,每次合併花費的代價為這兩堆石子的和,經過N-1次合併後成為一堆。求出總的代

NYOJ 737 石子合併(區間dp)

石子合併(一) 時間限制:1000 ms  |  記憶體限制:65535 KB 難度:3 描述    有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次將相鄰的兩堆石子堆成一堆,每次合併花費的代價為這兩堆石子的和,經過N-1次合

NYOJ 737 石子合併環形

描述     有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次將相鄰的兩堆石子堆成一堆,每次合併花費的代價為這兩堆石子的和,經過N-1次合併後成為一堆。求出總的代價最小值。 輸入有多組測試資料,輸入到檔案結束。 每組測試資料

NYOJ題目737石子合併區間dp

石子合併(一) 時間限制:1000 ms  |  記憶體限制:65535 KB 難度:3 描述    有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次將

NYOJ 石子合併經典區間DP

石子合併(一) 時間限制:1000 ms  |  記憶體限制:65535 KB 難度:3 描述    有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次將相鄰的兩堆石子堆成一堆,每次合併花費的代價為這兩堆石子的和,經過N-1次

nyoj737—石子合併區間DP

描述     有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次將相鄰的兩堆石子堆成一堆,每次合併花費的代價為這兩堆石子的和,經過N-1次合併後成為一堆。求出總的代價最小值。 輸入 有多組測試資料,輸入到檔案結束

石子合併 區間dp

石子合併(一) 題目描述:     有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次將相鄰的兩堆石子堆成一堆,每次合併花費的代價為這兩堆石子的和,經過N-1次合併後成為一堆。求出總的代價最小值。 輸入描述: 有多組測試資料,輸入到

石子合併

描述    有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次將相鄰的兩堆石子堆成一堆,每次合併花費的代價為這兩堆石子的和,經過N-1次合併後成為一堆。求出總的代價最小值。輸入有多組測試資料,輸入到檔案結束。每組測試資料第一行有一個整數n,

石子合併NOI1995題解

題目描述 在一個圓形操場的四周擺放N堆石子,現要將石子有次序地合併成一堆.規定每次只能選相鄰的2堆合併成新的一堆,並將新的一堆的石子數,記為該次合併的得分。 試設計出1個演算法,計算出將N堆石子合併成1堆的最小得分和最大得分. 輸入輸出格式 輸入格式: 資料的第1行試正整數N,1≤N≤100,表示有

NYOJ:噴水裝置

http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=6 描述 現有一塊草坪,長為20米,寬為2米,要在橫中心線上放置半徑為Ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數Ri(0<Ri<15)的圓被溼潤,這有充

表格的構成,屬性,合併

表格 學習要點: 1、表格的基本構成 2、表格的屬性 3、表格的合併。 知識點 效果 程式碼: <!DOCTYPE html>

NYOJ 漢諾塔

在印度,有這麼一個古老的傳說:在世界中心貝拿勒斯(在印度北部)的聖廟裡,一塊黃銅板上插著三根寶石針。印度教的主神梵天在創造世界的時候,在其中一根針上從下到上地穿好了由大到小的64片金片,這就是所謂的漢諾塔。不論白天黑夜,總有一個僧侶在按照下面的法則移動這些金片:一次只移動一片,不管在哪根針上,小片必須在大片

石子合併NOI1995

F: 石子合併(NOI1995) 時間限制: 1 Sec  記憶體限制: 128 MB 題目描述 在操場上沿一直線排列著 n堆石子。現要將石子有次序地合併成一堆。規定每次只能選相鄰的兩堆石子合併成新

nyoj漢諾塔 解法集合 主要用快速冪

漢諾塔(一) 時間限制:1000 ms  |  記憶體限制:65535 KB 難度:3 描述 在印度,有這麼一個古老的傳說:在世界中心貝拿勒斯(在印度北部)的聖廟裡,一塊黃銅板上插著三根寶石針。印度教的主神梵天在創造世界的時候,在其中一根針上從下到上地穿好了由大到小的

石子合併 環形合併

題目描述 在一個園形操場的四周擺放N堆石子,現要將石子有次序地合併成一堆.規定每次只能選相鄰的2堆合併成新的一堆,合併的花費為這相鄰兩堆之和 試設計出1個演算法,計算出將N堆石子合併成1堆的最小花費. 輸入輸出格式 輸入格式: 資料的第1行試正整數N,

nyoj 23-取石子(博弈)

panel -c 遊戲 tdi print 個數 btn 最小值 accept 23-取石子(一) 內存限制:64MB 時間限制:3000ms Special Judge: No

nyoj 737 石子合並區間DP

using lac padding gin height space outline style 每次 737-石子合並(一) 內存限制:64MB 時間限制:1000ms 特判: No通過數:28 提交數:35 難度:3 題目描