经典的石子合并问题!!!

设f[i][j]为从i到j的最大值

然后我们先枚举区间大小,然后枚举起点终点来更新

f[i][j] = min(f[i][k] + f[k+1][j] + sum(i, j));

最后f[1][n]就是答案!!

#include<cstdio>
#include<cstring>
#include<algorithm>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std; const int MAXN = 212;
int f[MAXN][MAXN], a[MAXN], s[MAXN], n; int main()
{
int ans = 1e9;
scanf("%d", &n);
REP(i, 1, n + 1) scanf("%d", &a[i]); REP(r, 1, n)
{
swap(a[r], a[r + 1]);
REP(i, 1, n + 1) s[i] = s[i-1] + a[i];
swap(a[r], a[r + 1]); REP(d, 2, n + 1)
for(int st = 1; st + d - 1 <= n; st++)
{
int i = st, j = st + d - 1;
f[i][j] = 1e9;
REP(k, i, j)
f[i][j] = min(f[i][j], f[i][k] + f[k+1][j] + (s[j] - s[i-1]));
}
ans = min(ans, f[1][n]);
}
printf("%d\n", ans); return 0;
}

最新文章

  1. C# 中的委托和事件(转)
  2. Loadrunner连接Mysql数据库
  3. 清除UIWebView的缓存
  4. 【mac osx安装opencv,python总结】
  5. WTL CEdit关联绑定ID,滚动到最新的一行
  6. IOS学习之蓝牙4.0 BLE
  7. 快速挂载和分离VHD文件的小脚本
  8. OpenCV——mixChannels函数
  9. Oracle12c多租户CDB 与 PDB 参数文件位置探讨、查询 CDB 与 PDB 不同值的参数
  10. Web API系列之二WebApi基础框架搭建
  11. virtual table for class
  12. Git常用命令集锦
  13. 基于create-react-app的打包后文件路径问题
  14. 不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁
  15. oracle 导出某用户下的表
  16. python中除法的几种类型
  17. 阿里云mysql远程登录报ERROR 2027(HY000)
  18. Java8 异步编排类CompletableFuture
  19. Git Note
  20. JSON.stringify、JSON.parse、toJSON 区别

热门文章

  1. K8s初探
  2. iOS开发——GCD总结
  3. angular7升级到angular8
  4. Java默认方法
  5. svn文件管理器的使用
  6. CAD二次开发(02)-添加对象到模型空间
  7. NYIST 1019 G.亲戚来了
  8. ftoa浮点型转换成字符串
  9. Linux系统编程——进程间通信:管道(pipe)
  10. 好记性不如烂笔头86-spring3学习(7)-ApplicationContext中bean的生命周期