I and OI
Past...
摘要: 先来看一道题(HDU3507):题意:给出N个单词,每个单词有个非负权值Ci,将k个单词排在一行的费用为(∑Ci)^2+M.求最优方案,使得总费用最小.我们很容易得到一个O(N^2)的算法:s[i]表示前i个单词的权值和.先写个东西在这:所有元素非负的数组的前缀和值随下标增加单调递增.后面会用到.f[i]表示将前i个单词排版完毕后的最优值,f[i]=min{f[j]+(s[i]-s[j])^2+M}.但题目中N的范围是500000.这个算法明显不行.考虑如何优化.我们固定i,考虑它的两个一般决策点j,k(j<k).记g[pos]=f[pos]+(s[i]-s[pos])^2+M,即i从p 阅读全文
posted @ 2011-08-11 14:14 exponent 阅读(2027) 评论(0) 推荐(2) 编辑