摘要: 思路: 区间dp,定义的 l 是区间的长度。for(k)的循环时防止(()的类似情况 代码: #include<iostream> #include<stdio.h> #include<string.h> using namespace std; const int maxn = 101; int 阅读全文
posted @ 2020-02-27 21:18 sqsq 阅读(117) 评论(2) 推荐(0) 编辑
摘要: 石子合并(每次合并相邻的两堆石子,代价为这两堆石子的重量和,把一排石子合并为一堆,求最小代价) 是一个经典的问题。dp可以做到O(n*n)的时间复杂度,方法是: 设f[i,j]为合并从i到j的石子所用最小代价。 f[i,j]=min(sum(i,j)+f[i,k]+f[k+1,j])对所有i<=k< 阅读全文
posted @ 2020-02-27 17:15 sqsq 阅读(679) 评论(0) 推荐(1) 编辑