题意: 有n个城市,编号为1~你,m条路,每条路起点为u,终点为v,从u到v的路费是cost,,从1开始走,求在k时刻到达n的最小花费,如果k时刻无法到达n,则输出-1方法:flody+矩阵快速幂注意点:数组调用函数后,它本身的值会变(数组的函数调用实际上传递的是位置)(详细可见 http://b....
分类:
其他好文 时间:
2015-03-14 19:59:47
阅读次数:
119
题目大意:有N(1
先dp一次,求出可能的最大总安全度max,再次dp,求出在安全度为max下的最小花费。
第一次dp:用d[i][j]表示用i个人看守j个仓库能搭成的最大总安全度,用a[i]表示第i个人的能力值。
状态转移方程:d[i][j]=max { d[i-1][j],min { d[i-1][j-u],a[i]/u } }(a[i]/u>d[i-1][j] && u>0)
...
分类:
其他好文 时间:
2015-03-11 17:30:25
阅读次数:
131
题目链接:点击打开链接
题意:
给定n个点的有向树
下面n-1行给出正向的边。
问:
修改尽可能小的边的方向,可以任选2个起点使得这两个点bfs能遍历完所有点。
思路:
枚举一条边,把树分成两部分,每次计算这两部分的最小花费。
那么这样就变成一个子树上的dp。
对于一棵树所需要修改的最小边方向的方法:
首先容易求出:dp[i]表示以i为根的子树,用i作为起点的花费.
我们选根...
分类:
其他好文 时间:
2015-03-11 17:12:51
阅读次数:
149
依旧是状态分组——求K个机器人从同一点出发,遍历所有点所需的最小花费Sample Input3 1 11 2 11 3 13 1 21 2 11 3 1Sample Output32 1 /* 2 HDU 4003 3 树形DP+只能选一个物品的分组背包 4 5 dp[pos][num]表示以po....
分类:
其他好文 时间:
2015-03-11 10:41:47
阅读次数:
173
题目大意:有4个位置,每次从一个位置移动到另一个位置需要特定花费,求一串指定序列的最短花费。每次只能一只脚移动,或移动并踩下。
用d[i][j][u]表示前i个位置完成且在(j,u)的状态最小花费是多少,(j,u)其中之一必须和a[i]相等,假设是j和a[i]相等,那么可能上一个状态也是(j,u),或者上一个状态是(k,u),注意上一个状态不能是(j,k),因为这样需要左脚踩踏,右脚移动...
分类:
其他好文 时间:
2015-03-11 00:48:21
阅读次数:
163
题意:把一根木棍按给定的n个点切下去,每次切的花费为切的那段木棍的长度,求最小花费。
区间DP
和POJ 3253-Fence Repair相似,POJ那题不是给定切割点,而是给定了需要切成的长度,所以可以用哈夫曼编码贪心做
// Accepted C++ 0.112
#include
#include
#include
#include
using namespace std;
int l...
分类:
其他好文 时间:
2015-03-10 17:17:44
阅读次数:
148
题目链接:lightOJ 1047 Neighbor House
题意:有N做房子,每个房子涂3种颜色各有一个花费,相邻的房子颜色不能一样,给N个房子涂颜色,问完成这个任务的最小花费。
dp[i][j] 表示涂到第i个房子涂j颜色的最小花费。
状态转移方程:dp[i][k]=min(dp[i][k],dp[i-1][j]+p[i].c[k]);
AC代码:
#...
分类:
其他好文 时间:
2015-03-03 10:01:16
阅读次数:
151
题目大意:有M(1
用d[i][j]表示当前买了列表的前i个物品并且走完了街道的前j个摊子的最小花费,那么分两种情况,如果第j个摊子卖的和在列表上第i个商品相同,那么可能从d[i-1][j-1]推来或d[i][j-1],即第j个摊子买或不买,若第j个摊子卖的不是列表上的第i个商品,那么就直接由d[i][j-1]推来。
程序中用滚动数组从而在空间上压缩了一维状态。
状态转移方程...
分类:
其他好文 时间:
2015-02-27 10:13:03
阅读次数:
176
题目大意:有一个列车,要走n个路段,每个路段有一定的长度。初始时,最大速度是M,每次在一个路段要开始的时候,司机可以选择一个速度,在(0,M]之间的任意值v。则发生冲突的概率是v/M,如果发生冲突,那么将会需要10秒恢复并且以恒定的速度5运行到这个路段完毕。并且如果发生冲突,M的值会少1(这样会对后面的路段有影响)。求运行完所有路段的最小花费时间。如果发生冲突,那么假设冲突在中点发生。还有些细节参...
分类:
其他好文 时间:
2015-02-26 16:41:28
阅读次数:
135
题意:给定n个点的树,m个黑点以下n-1行给出边和删除这条边的费用以下m个黑点的点标[0,n-1]删除一些边使得随意2个黑点都不连通。问删除的最小花费。思路:树形dp每一个点有2个状态,成为黑点或白点。若本身这个点就是黑点那么仅仅有黑点一种状态。否则能够觉得是子树中某个黑点转移上来。所以dp[i][...
分类:
其他好文 时间:
2015-02-22 17:20:22
阅读次数:
141