区间DP
来源:互联网 发布:矩阵和行列式的区别 编辑:程序博客网 时间:2024/06/06 00:46
1048 石子归并
题目描述 Description
在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。
试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.
输入描述 Input Description
数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.
输出描述 Output Description
输出共2行,第1行为最小得分,第2行为最大得分.
样例输入 Sample Input
4
4 4 5 9
样例输出 Sample Output
43
54
/*作者:QHY题目:p1048 石子归并*/#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;int s[110][110],a[110],n,sum[110],inf=0x3f3ffff;//s 两数之间最小值 int main(){cin>>n;memset(s,0x3f,sizeof(s));for(int i=1;i<=n;i++) s[i][i]=0;for(int i=1;i<=n;i++){scanf("%d",&a[i]); sum[i]=sum[i-1]+a[i];//前缀和 }for(int len=2;len<=n;len++)//长度 for(int i=1;i<=n-len+1;i++)//起点 for(int j=i;j<i+len-1;j++){//中点 int k=i+len-1;//终点 s[i][k]=min(s[i][k],s[i][j]+s[j+1][k]+sum[k]-sum[i-1]);//cout<<"i "<<i<<" i+len-1 "<<i+len-1<<" s[i][i+len-1] "<<s[i][i+len-1]<<endl;}cout<<s[1][n];}
0 0
- 区间DP
- 区间DP
- 区间DP
- 区间DP
- ##区间dp##
- 区间dp
- 区间DP
- 区间dp
- 区间dp
- 区间dp
- 区间dp
- 区间dp
- 区间dp
- 区间dp
- 区间DP
- 区间DP
- 区间DP
- 区间dp
- Exchange 2010 Ps 之创建CAS Array 和关联数据库和Cas Array!
- [stm32F4,0]zephyr镜像的入口函数--移置的第一步
- Docker network命令
- IMF 检查虚拟机swap内存,清理及spark程序重新调整
- Splash的实现
- 区间DP
- 343IntegerBreak
- Spring Mvc那点事---(14)Spring Mvc之mybatis调用存储过程
- variable-resolver
- stable_sort使用 ---NOJ---1073 成绩排名
- JSP小细节
- 如何设定Android Activity间切换时的动画
- 外部CAD绘制的三维图导入hypermesh采用STP格式
- LPC特征提取