题意:给出n个地点 和 每个地点的油价 ,有 m 条边 , 并给出每条边长度 。1单位汽油可以走1千米 , 油箱的容量为 c , 在初始点 s 时 , 油箱中的油为 0 , 求s 到 t 的最小花费 。
解法: 定义 状态 d[i][j] 表示到达 地点 i 且油箱中有 j 单位油时的最小 花费。 对于状态的转移时 , 有两种方法:
1、把每个点的所有状态都求出
2、不把每个点的状...
分类:
其他好文 时间:
2014-05-10 09:08:57
阅读次数:
365
题意:坐飞机从 a 地到 b 地 ,在最多停留s次时 , 最小花费是多少?
在题目给出的地点 , 是按从远到近给出的 , 并且给出的航班中 , 不会有从远地点到近地点的航班。
因此从这可以看出 , 题目给的图是一个DAG图 , 那么我们就能用toposort来找最短路。
注意: 会有重边
解法:
构造一个数组 d[i][j] , 表示从开始点 s 到点 i...
分类:
其他好文 时间:
2014-05-10 08:51:56
阅读次数:
391
题意:一个人要买通若干支持者,这些支持者的关系形成一棵森林,只要买通树根他的孩子节点也会被买通,问你至少要买通m个守卫要花多少钱。思路:由于是一颗森林我们需要加一个结点使得他到每个点都建一条边,然后dp[i][j]表示i为根的结点买通j个需要的最小花费。dp[v][j]
= min(dp[v][j]...
分类:
其他好文 时间:
2014-05-08 19:51:40
阅读次数:
310
参考了别人的思路dp[i][j]表示从第i个人到第j个人这段区间的最小花费是只考虑这j-i+1个人,不需要考虑前面有多少人)那么对于dp[i][j]的第i个人,、就有可能第1个上场,也可以第j-i+1个上场。考虑第K个上场即在i+1之后的K-1个人是率先上场的,那么就出现了一个子问题
dp[i+1]...
分类:
其他好文 时间:
2014-05-07 21:00:09
阅读次数:
311
给了你N个木棒,求把他们组装成一根需要的最小花费,每次只能选两根组装在一起,需要的花费为两个木棒之和,
以前遇到过把一整根切开的,那个是DP,这个则有些类似,可是大胆的猜测了一下,直接每次选取所有木棒中最短的两根,这样就可以了,那么贪心是适用的,但是数量很多,而且两根最短的组装好了得插回去,这样不可能每次都排序吧,
这题首先优先队列肯定是可以做的,
最小堆也是可以的,每次都选出堆里的...
分类:
其他好文 时间:
2014-05-07 12:44:17
阅读次数:
337
题目链接题意 :
一篇文章有n个单词,如果每行打印k个单词,那这行的花费是,问你怎么安排能够得到最小花费,输出最小花费。思路 :
一开始想的简单了以为是背包,后来才知道是斜率优化DP,然后看了网上的资料,看得还挺懂的,不过我觉得如果以后真遇到斜率DP,要推起来肯定不简单。。。。。网上资料1网上资料2...
分类:
其他好文 时间:
2014-05-07 00:35:18
阅读次数:
424
题目连接:uva 11578 - Situp Benches
题目大意:健身房有两个仪器,初始角度为10度,每次有人使用需要交15元,每调10度需要花费10元,现在有n个人,给出每个人使用仪器的顺序和角度,保证不会同时有大于2个人序号一样,求最小花费,并且输出每个人分别使用哪一个仪器,并且所有人使用结束后,要将仪器调回10度。
解题思路:dp[i][x][y]表示第i个人,一个...
分类:
其他好文 时间:
2014-05-06 22:54:40
阅读次数:
361
题目链接:10641 - Barisal Stadium
题意:顺时针给定n个点,在给m个灯,每个灯有一个花费,要求最小花费使得所有边能被灯照到
思路:用向量叉积判断向量的顺逆时针关系,从而预处理出每个灯能照到的边,然后由于n个点是环的,所以可以直接扩大两倍,dp时候去枚举起点即可
状态为dp[i]表示现在照到i条边之前的边全部照亮需要的最小花费
代码:
#include
#inclu...
分类:
其他好文 时间:
2014-05-06 21:40:48
阅读次数:
304
题目链接:11578 - Situp Benches
题意:健♂身♂房有两个仰卧起坐坐垫,每次调整角度要花费10元/10度,每次使用要花费15,现在给定n个人的时间顺序,和所希望的角度,求最少花费
思路:dp,dp[i][j][k]表示第i个人,一个角度为j,另一个为k的最小花费,一个人用和两个人用的情况分开讨论,然后记录dp状态转移路径。这个输出路径让这题变得麻烦了不少。不过机智的我还是把它...
分类:
其他好文 时间:
2014-05-02 07:09:28
阅读次数:
253