就是石子合并的数据范围变为了1e3

经典四边形优化区间dp

const int N = 2e3 + 10;
const long long inf = 1e18;
long long dp[N][N], sum[N];
int m[N][N], a[N];int main()
{int T = 1;//T = read();while (T --){int n;n = read();for (int i = 1; i <= 2 * n; i ++){if (i <= n)a[i] = read();elsea[i] = a[i - n];m[i][i] = i;sum[i] = sum[i - 1] + a[i];}for (int len = 2; len <= n; len ++)for (int l = 1; l + len - 1 <= 2 * n; l ++){int r = l + len - 1;long long ans = inf;for (int k = m[l][r - 1]; k <= min(m[l + 1][r], r - 1); k ++)if (dp[l][k] + dp[k + 1][r] + sum[r] - sum[l - 1] < ans){ans = dp[l][k] + dp[k + 1][r] + sum[r] - sum[l - 1];m[l][r] = k;}dp[l][r] = ans;}long long ans = inf;for (int i = 1; i <= n; i ++)ans = min(ans, dp[i][i + n - 1]);cout << ans;}return 0;
}

51nod 1022 石子合并v2相关推荐

  1. 51Nod 1021 石子合并 Label:Water DP

    N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价.计算将N堆石子合并成一堆的最小代价. 例如: 1 2 3 4,有不少 ...

  2. 石子合并[DP-N3]

    题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...

  3. CSP认证201612-4 压缩编码[C++题解]:区间dp、huffman树、石子合并

    题目分析 来源:acwing 分析: 本题难在想到是区间dp.想到区间dp之后,这就是石子合并的代码直接默写. 那么是如何建模的呢?我们把huffman编码(这里要求按照字典序大小编码,和huffma ...

  4. 算法基础课-动态规划-区间dp-AcWing 282. 石子合并:区间dp

    文章目录 题目分析 题目链接 题目分析 只能合并相邻两堆.求体力最小值 数据比较弱,最多300堆,每堆重量不超过1000. 状态表示 f[i][j]表示合并区间[i,j]需要的最小体力 状态转移 把区 ...

  5. NYOJ737 石子合并(一)区间动态规划

    石子合并(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆石子堆成 ...

  6. 【BZOJ 3229】 3229: [Sdoi2008]石子合并 (GarsiaWachs算法)

    3229: [Sdoi2008]石子合并 Description 在一个操场上摆放着一排N堆石子.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合 ...

  7. SDNU 1048.石子合并2(区间dp)

    Description 有n堆石子排成一圈,每次选择相邻的两堆石子,将其合并为一堆,记录该次合并的得分为两堆石子个数之和.已知每堆石子的石子个数,求当所有石子合并为一堆时,最小的总得分. Input ...

  8. SDNU 1045.石子合并1(区间dp)

    Description 有n堆石子排成一行,每次选择相邻的两堆石子,将其合并为一堆,记录该次合并的得分为两堆石子个数之和.已知每堆石子的石子个数,求当所有石子合并为一堆时,最小的总得分. Input ...

  9. 石子合并(GarsiaWachs算法)

    对于石子合并问题,有一个最好的算法,那就是GarsiaWachs算法.时间复杂度为O(n^2). 它的步骤如下: 设序列是stone[],从左往右,找一个满足stone[k-1] <= ston ...

最新文章

  1. 读博前三年0文章,后期发力一口气11篇一作!这个“90后”现任职985博导
  2. JS中三目运算符和if else的区别
  3. 《Visual C# 2010入门经典》一导读
  4. linux操作系统分析实验—基于mykernel的时间片轮转多道程序实现与分析
  5. 计算机视觉算法——Transformer学习笔记
  6. Spring源码:BeanDefinition
  7. 第二届构建之法论坛预告(草案)
  8. c语言 main函数
  9. (11)Zynq SPI控制器介绍
  10. stm32f4 usb 升级程序_51单片机程序下载、ISP及串口基础知识
  11. HSPICE与非门仿真
  12. buck电路的matlab仿真,buck电路simulink仿真
  13. 如何用安卓手机做代理服务器
  14. python简易语音助手
  15. 电脑插上U盘后不显示怎么办?
  16. 在Oracle DevGym上学习cx_Oracle的笔记
  17. 中国传媒大学计算机课程表,中国传媒大学新闻学院课程表.doc
  18. windows 7 cmd(ms DOS)命令窗口没有滚动条 还原CMD默认设置
  19. 【STC15】3路PWM波形输出示例演示
  20. 利用pearcmd.php本地文件包含(LFI)

热门文章

  1. wmi接口如何通过Win32_Volume类修改盘符
  2. css3-响应式布局
  3. HTML系列(七):多媒体
  4. QAU 18校赛 J题 天平(01背包 判断能否装满)
  5. 3237: [Ahoi2013]连通图 线段树分治
  6. 有向图的深度/广度优先遍历算法
  7. PHP和MySQL处理树状、分级、无限分类、分层数据的方法
  8. TFS 路径...已在工作区...
  9. 2021-11-18Collections
  10. 前端页面可视化设计工具