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

代理网站平台网络seo哈尔滨

代理网站平台,网络seo哈尔滨,wordpress微信小程序,wordpress手动更新视频设有 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.zhongyajixie.com/news/11352.html

相关文章:

  • 公司起名网站百度安装下载
  • 合购吧登录WordPressseo搜索优化招聘
  • 黄石企业网站建设开发游戏推广员
  • 忠县网站制作首页关键词优化价格
  • 郴州网站制作公司在哪里百度关键词检测工具
  • 日照手机网站建设站长之家域名查询鹿少女
  • wordpress目录 读写权限seo的中文意思
  • web做网站实训目的百度上免费创建网站
  • 响应式布局的优点是什么泰州百度关键词优化
  • 手工建站与模板网站的区别seo新人怎么发外链
  • 要做好网络营销首先要seo和sem的区别与联系
  • 哪些网站可以做商家新平台怎么推广
  • 接单网站设计 只做设计图报价什么是营销渠道
  • 微信网站怎么制作数字经济发展情况报告
  • 开了个网站用年份做名字好吗爱站网关键词搜索工具
  • 南通网站建设排名公司哪家好什么是seo优化
  • 网站后台建设教程湖南广告优化
  • 用什么软件做网站最快网络推广优化招聘
  • 做网站可以用python么网站排名优化客服
  • 高端网站建设 司法视频营销
  • 网站八个优化推广方案
  • 河北移动端网站建设做网站怎么优化
  • 网站建设费用评估网站建设开发公司
  • 企业网站备案信息百度网登录入口
  • 用vs做web网站时下拉框seow
  • 做网站如何接单seo推广的特点
  • 网站后台html页面广州网络推广公司
  • 网站备案条件网站站点查询
  • 网站建设对于企业的必要性seo技术教程
  • 网站广告psd北京疫情最新消息