摘要:
题意:一条路上有n(n<=300)个洞,m(m<=100000)个公司,第i个公司可以修复连续区间 Li~ Ri 内的洞,花费为Vi。问至少修复k个洞,最小花费是多少?分析:先处理出一条线段覆盖 [l, r],并且右端点恰好在r上的最小代价V[l, r],然后dp(i, j) 表示前j个点,修复i个的最小代价,dp[i, j] = min ( dp[i, j-1], dp[i-r, j-r] + V[j-r+1, j] )const int M = 305;LL dp[M][M], a[M][M], ans;int n, m, k;int main(){ #ifndef ONLIN 阅读全文