题意 珠宝店到珍珠批发商进货 第i种价格为p[i]的珍珠需要n个 则珍珠的结算价格为∑(n+10)*p[i] 由于没种珍珠的数量结算时都要加上10 所以有时候把便宜的珍珠换为贵的结算价格反而变少了 给你一张购买清单 珍珠价格是递增的 每种珍珠都可以替换为比它贵的 求最少总花费
简单dp 令d[i]表示前i种珍珠的最少花费 sum[i]表示第1种到第第i种的总数 ...
分类:
其他好文 时间:
2014-08-18 12:38:15
阅读次数:
190
思考:我们可以从题目中给出的6种操作描述,找到递归式,比如复制操作是i和j都增加1。那么递归式就是c[i][j]=c[i-1][j-1]+cost[COPY]。c[i][j]表示从字符串i复制到字符串j所需要的总代价。其他操作类似。
递归式如下:
代码如下:
#include
using namespace std;
enum {COPY,REPLACE,DELETE,INSERT,TWI...
分类:
其他好文 时间:
2014-08-18 12:33:14
阅读次数:
222
题意 判断能否由字符串a,b中的字符不改变各自的相对顺序组合得到字符串c
本题有两种解法 DP或者DFS
考虑DP 令d[i][j]表示能否有a的前i个字符和b的前j个字符组合得到c的前i+j个字符 值为0或者1 那么有d[i][j]=(d[i-1][j]&&a[i]==c[i+j])||(d[i][j-1]&&b[i]==c[i+j]) a,b的下标都是从1开始的 注意0的初始化...
分类:
其他好文 时间:
2014-08-18 09:17:03
阅读次数:
288
前天wildcard matching没AC,今天接着搞,改用动态规划。题目再放一次:'?'匹配任意字符,'*'匹配任意长度字符串Some examples:isMatch("aa","a") → falseisMatch("aa","aa") → trueisMatch("aaa","aa") →...
分类:
其他好文 时间:
2014-08-18 00:06:43
阅读次数:
283
你所掌握的算法知识帮助你从Acme计算机公司获得了一份令人兴奋的工作,签约奖金1万美元。你决定利用这笔钱进行投资,目标是10年后获得最大回报。你决定请Amalgamated投资公司管理你的投资,该公司的投资回报规则如下。该公司提供n种不同的投资,从1~n编号。在第j年年底,比你会得到drij美元。回报率是有保证的,即未来10年每种投资的回报率均已知。你每年只能做出一次投资决定。在每年年底,你既可以...
分类:
其他好文 时间:
2014-08-17 22:50:52
阅读次数:
385
Potted Flower
Time Limit: 2000MS
Memory Limit: 65536K
Total Submissions: 4186
Accepted: 1581
Description
The little cat takes over the management of a new park. There...
分类:
其他好文 时间:
2014-08-17 18:39:42
阅读次数:
350
题意 老鼠在一个小镇吃奶酪 城镇可以看成一个n*n的矩阵 其中每个格子都有一定数量的奶酪mat[i][j] 老鼠从(0,0) 开始吃 而且下个吃的格子里的奶酪必须比上个格子多 老鼠只能水平方向或者垂直方向走 而且每次走的距离不能超过k 求老鼠最多能吃多少奶酪
起点是固定的 比较容易 直接记忆化搜索
令d[i][j]表示以(i,j)为终点的最优解 那么对于所有(i...
分类:
其他好文 时间:
2014-08-17 15:38:12
阅读次数:
221
Alice and Bob
Accepted : 98
Submit : 324
Time Limit : 1000 MS
Memory Limit : 65536 KB
Problem Description
Alice and Bob always love to play games, so does thi...
分类:
其他好文 时间:
2014-08-17 15:37:12
阅读次数:
299
题意 求一个n*n矩阵的最大子矩阵和
HDU 1003 max sum 的升级版 把二维简化为一维就可以用1003的方法去做了 用mat[i][j]存 第i行前j个数的和 那么mat[k][j]-mat[k][i]就表示第k行 第i+1个数到第j个数的和了 再将k从一枚举到n就可以得到这个这个宽度为j-i的最大矩阵和了 然后i,j又分别从1枚举到n就能得到结果了 和1...
分类:
其他好文 时间:
2014-08-17 15:35:02
阅读次数:
225
// poj 1458 zoj 1733 最长公共子序列 DP #include #include #define N 1005using namespace std ;char s1[N],s2[N]; int dp[N][N];int max(int a,int b) { return a>b ...
分类:
其他好文 时间:
2014-08-17 11:44:02
阅读次数:
160