考虑d(i,j)表示切割点i到j这段距离的最小花费,于是d(i,j)=min(d(i,k)+d(k,j))+a[j]-a[i] ,其中j<k<i,边界条件d(i,i)=d(i,i+1)=0,最终求d(0,n+1),复杂度o(n^3),可采用记忆化搜索。 ...
分类:
其他好文 时间:
2016-08-20 21:50:55
阅读次数:
116
题目链接 http://acm.hust.edu.cn/vjudge/problem/19202 解题思路 cost[i][j]表示第i个切割点到第j个切割点之间的这个木棍的最小花费。 状态转移方程:cost[start][end] = cost[start][k] + cost[k][end] + ...
分类:
其他好文 时间:
2016-08-20 15:57:20
阅读次数:
247
题意:对于给定的n个字符串,可以花费a[i] 将其倒序,问是否可以将其排成从大到小的字典序,且花费最小是多少。 析:很明显的水DP,如果不是水DP,我也不会做。。。。 这个就要二维,d[2][maxn],d[0][i]表示第 i 个不反转是最小花费,d[1][i]表示第 i 个反转最小花费,那么剩下 ...
分类:
其他好文 时间:
2016-08-13 12:50:41
阅读次数:
169
题目链接:http://codeforces.com/problemset/problem/706/C 给你n个字符串,可以反转任意一个字符串,反转每个字符串都有其对应的花费ci。 经过操作后是否能满足字符串str[i]>=str[i-1],能就输出最小花费,不能输出-1。 dp[i][0] 表示不 ...
分类:
其他好文 时间:
2016-08-13 01:20:10
阅读次数:
305
Cheapest Palindrome 题目链接: http://poj.org/problem?id=3280 题意: 给出一个只由小写字母组成的串,可以添加或删除一些字母(添加和删除都需要花费且花费不同),求将这个串改变成一个回文串的最小花费。 题解: 设dp[i][j]是将区间[i,j]改变成 ...
分类:
其他好文 时间:
2016-08-08 12:34:15
阅读次数:
99
题意:农夫要将板割成n块,长度分别为L1,L2,...Ln。每次切断木板的花费为这块板的长度,问最小花费。21 分为 5 8 8三部分。 思路:思考将n部分进行n-1次两两合成最终合成L长度和题目所求花费一致。贪心,按木板长度排序,每次取长度最小的两块木板,则答案最小。因为合成次数是固定不变的,尽量 ...
分类:
其他好文 时间:
2016-08-05 13:50:13
阅读次数:
121
bzoj3156防御准备 题意: n个检查点,在第i个检查点放置塔花费a[i],放置木偶花费为该位置右边最近一个塔离它的距离。求最小花费。n≤1000000 题解: 从右往左处理。在第i个点放塔的费用f[i]=min{f[j]+sigma(k,i+1,j-1)k-i}+a[i],用等差数列求和公式化 ...
分类:
其他好文 时间:
2016-07-24 17:38:24
阅读次数:
116
点击打开链接
题意:从Y走到C,#代表不能走,走*的话要花费C元,P是传送门可以到达任意一个P,问最小花费
思路:直接优先队列模拟一下就行,BFS搜一下,P直接记录,遇到了就判断它能到达的点能不能走就行了,easy#include
#include
#include
#include
#include
#include
using namespace std;
typedef lo...
分类:
其他好文 时间:
2016-07-15 11:19:13
阅读次数:
237
题意:学生从A站到B站花费C元,将学生每天从‘1’号站送往其它所有站,再从所有站接回到‘1’号站,问着个过程最小花费是多少。 思路:因为数据很大所以要用SPFA,因为不仅要从1点连接各个点还要从各个点返回一点,所以需要正邻接表和逆邻接表。然后正反各跑一次SPFA,值得注意的是因为数据很大,要将INF ...
分类:
其他好文 时间:
2016-07-15 00:21:01
阅读次数:
223
题意:i -> j 的花费为|i - j| 如果有ai=j,那么i ->j的花费为1,分别求出第一个点到所有的点的最小花费 题解:建设此时在点d,那么从d点出发花费为1可到达点d-1,d+1以及ad,用bfs搜索一遍就行。 #include <iostream> #include <cstdio> ...
分类:
其他好文 时间:
2016-07-12 10:15:34
阅读次数:
169