麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發(fā)設計 > 正文

石子合并(一)

2019-11-10 19:18:11
字體:
來源:轉載
供稿:網友

石子合并(一)

時間限制:1000 ms  |  內存限制:65535 KB難度:3描述    有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子并成為一堆。合并的過程只能每次將相鄰的兩堆石子堆成一堆,每次合并花費的代價為這兩堆石子的和,經過N-1次合并后成為一堆。求出總的代價最小值。

輸入有多組測試數據,輸入到文件結束。每組測試數據第一行有一個整數n,表示有n堆石子。接下來的一行有n(0< n <200)個數,分別表示這n堆石子的數目,用空格隔開輸出輸出總代價的最小值,占單獨的一行樣例輸入
31 2 3713 7 8 16 21 4 18樣例輸出
9

239

還是有些迷迷糊糊,師兄說還可以用四邊形不等式優(yōu)化,還不會,以后再補充。

#include <iostream>#include <cstdio>#define INF 100000000#define N 205using namespace std;int main(){    int n,i,j;    int a[N],sum[N],dp[N][N];    while(~scanf("%d",&n)&&n)    {        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++)//2,3,4堆合并        {            for(i=1;i<=n-1+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;}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 91在线免费观看 | 激情在线视频 | 91精品久久久久久久久网影视 | av电影在线观看网站 | 成人污在线 | 国产乱色精品成人免费视频 | 午夜精品成人一区二区 | 日韩中文字幕一区二区三区 | 欧美日韩国产中文字幕 | 久久免费视频精品 | 中文字幕视频在线播放 | 亚洲免费观看视频 | 国产成人精品免费视频大全办公室 | 日韩激情| 蜜桃网站在线观看 | 男人午夜小视频 | av日韩一区二区 | 欧美成在线视频 | 中日韩乱码一二新区 | 久久久久夜色精品国产老牛91 | 巨乳毛片| 日本网站在线播放 | 免费视频xxxx | 污视频在线免费播放 | 黄色网址免费入口 | 成人一区二区三区在线 | 国产日本欧美在线观看 | 久久国产亚洲视频 | 国产在线午夜 | 久久久久国 | 日本在线国产 | av一二三四区 | 黄色网址免费进入 | 成人一级视频 | 国产精品视频一区二区三区综合 | 视频一区二区国产 | 龙床上的呻吟高h | av在线中文 | 日韩视频在线一区二区三区 | 亚洲综合视频网站 | 欧美成人免费电影 |