当前位置: 首页 > news >正文

摄影网站功能设计聊城网站推广软件

摄影网站功能设计,聊城网站推广软件,河南建设监理协会网站电话,青岛网页制作案例设有 N 堆石子排成一排,其编号为 1,2,3,…,N。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这 N 堆石子合并成为一堆。 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的…

设有 N 堆石子排成一排,其编号为 1,2,3,…,N。

每堆石子有一定的质量,可以用一个整数来描述,现在要将这 N 堆石子合并成为一堆。

每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。

例如有 44 堆石子分别为 1 3 5 2, 我们可以先合并 1、2堆,代价为 44,得到 4 5 2, 又合并 1、2堆,代价为 9,得到 9 2 ,再合并得到 11,总代价为 4+9+11=24;

如果第二步是先合并 2、3堆,则代价为 7,得到 4 7,最后一次合并代价为 11,总代价为 4+7+11=22

问题是:找出一种合理的方法,使总的代价最小,输出最小代价。

输入格式

第一行一个数 N 表示石子的堆数 N。

第二行 N 个数,表示每堆石子的质量(均不超过 1000)。

输出格式

输出一个整数,表示最小代价。

数据范围

1≤N≤300

输入样例:

4
1 3 5 2

输出样例:

22
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
using namespace std;
typedef long long LL;
const int N = 300 + 5;
const int INF = 1e9;
int n;
int sum[N], dp[N][N];int main() {cin >> n;for (int i = 1; i <= n; i++) {scanf("%d", &sum[i]);sum[i] += sum[i - 1];}for (int len = 2; len <= n; len++) {for (int l = 1; l + len - 1 <= n; l++) {int r = len + l - 1;dp[l][r] = INF;for (int k = l; k < r; k++) {dp[l][r] = min(dp[l][r], dp[l][k] + dp[k + 1][r] + sum[r] - sum[l - 1]);}}}cout << dp[1][n] << endl;return 0;
}

代码2

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
using namespace std;
typedef long long LL;
const int N = 300 + 5;
const int INF = 1e9;
int n;
LL sum[N], dp[N][N];int main() {cin >> n;for (int i = 1; i <= n; i++) {scanf("%ld", &sum[i]);sum[i] += sum[i - 1];}for (int i = n; i >= 1; i--) {for (int j = i + 1; j <= n; j++) {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]);}}}cout << dp[1][n] << endl;return 0;
}

 

http://www.yayakq.cn/news/706831/

相关文章:

  • 哪里可以接网站开发项目做play字体WordPress
  • 德州网站建设php网站虚拟机
  • 西安市网站搭建北京王府井攻略
  • 做网站推广需要具备哪些条件安徽工程建设造价信息网站
  • 网站维护总结做响应式网站价格
  • 交易平台网站建设网站建设市场介绍
  • 企业网站的建设公司价格wordpress post fonts
  • 诸暨公司网站建设wordpress循环插件
  • 公司建一个网站注册的空间网站
  • 网站域名 空间申请表wordpress免插件灯箱
  • 建设网站网址是多少深圳市网是科技有限公司
  • wordpress建站要钱么开封网站优化公司
  • 昆山市建设局招投标网站手机如何制作链接
  • 虚拟币网站开发repress wordpress
  • 烟台建设集团网站购卡网页怎么制作
  • 网站运营者是做啥工作的免费php开源企业网站
  • 电影院订票网站开发视频广告对接平台
  • 做农业的公司管理网站电脑做网站端口映射
  • 盐城做网站价格是网站建设
  • 顺德做网站的公司哪家好wordpress ckplayer
  • 网站页面设计多少钱中美最近军事新闻
  • 信誉好的品牌网站建设威海网站开发公司
  • 理财公司网站模板下载德德模板网站建设步骤
  • 专业网站建设平台公司网站制作有限公司
  • 网站设计与制作前景德阳企业品牌网站建设
  • 大型电商网站开发项目做调查问卷的网站
  • 形容网站页面做的好的词语第一次做网站不知道
  • 企业网站优化内容潍坊做网站
  • 源码网站 怎么做家具网站开发项目计划书
  • 企业网站管理系统cms网页类网站