2012年8月16日
摘要: 读题很重要啊,题目读错了,害我想了一晚上。题目大意:给你n种物品,每种物品有个坐标和价值,你得到某个物品的消耗为|x-y|+v。而且要求你只能从第一种依次往后取,(我开始以为是随机的。。)。所以很容易想到DP转移方程,不过需要优化下,因为dp[i][j] = min{dp[i-1][k] + |pos[i-1][k] - pos[i][k]|} + v[i][j];主要是绝对值很碍事,所以要想办法把绝对值去掉,这里我们就可用到单调队列,一个L和R队列分别存储着从左边(从坐标来说)到这个位置的“值”,已经从右边到这个位置的“值”。View Code 1 #include<iostream& 阅读全文
posted @ 2012-08-16 15:46 Dev-T 阅读(292) 评论(0) 推荐(0) 编辑