摘要: 题意:一张CD上有n首频率为f[i],长度为了l[i]的曲子,因为CD不能随机播放曲子,想播放第i首时,必须依次播放前i-1,b[i]=f[i]*(a[1]+...+a[i]),sum=b[1]+..+b[n],求使sum最小的歌曲排列方式。分析:因为1<=n<=2^16,时效只可能是O(nlogn)或O(n),一开始以为是按频率排序,发现测试数据都过不了。若已得到最优排列,使最优值为mb[i+1]+b[i]=f[i+1]*l[i]+(f[i+1]+f[i])*(l[1]+...+l[i-1])+f[i+1]*l[i+1]+f[i]*l[i];若交换f[i]*l[i+1]+(f[i 阅读全文
posted @ 2012-06-01 16:25 蚀 阅读(336) 评论(0) 推荐(0)