欢迎访问我的个人网站==》 jiashubing.cn
摘要: 题目链接:http://poj.org/problem?id=3280题目大意:给定一个字符串,可以删除增加,每个操作都有代价,求出将字符串转换成回文串的最小代价Sample Input3 4abcba 1000 1100b 350 700c 200 800Sample Output900分析:这是一道最长回文串的变形,就是LCS 一串字符要变成回文,对于一个字符来说,删掉它,或者增加对称的一个该字符,都能达到回文的效果,所以是等价的。所以取代价的的时候选择最小的就可以。 至于动态规划方程:令dp[i][j]表示从第 i 个字符到第j个字符变成回文的最小代价,初始为0。接着LCSdp[i].. 阅读全文
posted @ 2013-08-24 22:18 贾树丙 阅读(462) 评论(2) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3181题目大意:用1,2...K元的硬币,凑成N元的方案数。Sample Input5 3Sample Output5分析:这不是母函数是什么,不管你信不信,反正我是信了。 之前有过一篇,讲母函数的动态规划做法http://www.cnblogs.com/acm-bingzi/archive/2013/04/30/3051725.html 这道题目,坑就坑在高精度上了,刚开始怎么也没想到,而且做法也很奇特。就是将2个long long 的数字进行拼接。代码如下: 1 # include 2 # include 3 # defi.. 阅读全文
posted @ 2013-08-24 22:00 贾树丙 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114题目大意:根据储钱罐的重量,求出里面钱最少有多少。给定储钱罐的初始重量,装硬币后重量,和每个对应面值硬币的重量。Sample Input310 11021 130 5010 11021 150 301 6210 320 4Sample OutputThe minimum amount of money in the piggy-bank is 60.The minimum amount of money in the piggy-bank is 100.This is impossible.分 阅读全文
posted @ 2013-08-24 21:39 贾树丙 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 1. 为何状态压缩: 棋盘规模为n*m,且m≤10,如果用一个int表示一行上棋子的状态,足以表示m≤10所要求的范围。故想到用int s[num]。至于开多大的数组,可以自己用DFS搜索试试看;也可以遍历0~2^m-1,对每个数值的二进制表示进行检查;也可以用数学方法(?)2. 如何构造状态: 当然,在此之前首先要想到用DP(?)。之后,才考虑去构造状态函数f(...)。 这里有一个链式的限制:某行上的某个棋子的攻击范围是2。即,第r行的状态s[i],决定第r-1行只能取部分状态s[p];同时,第r行的状态s[i],第r-1行状态s[p],共同决定第r-2行只能取更少的状态s[q]。当然,最 阅读全文
posted @ 2013-08-24 03:55 贾树丙 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1074题目大意:学生要完成各科作业, 给出各科老师给出交作业的期限和学生完成该科所需时间, 如果逾期一天则扣掉一单位学分, 要你求出完成所有作业而被扣最小的学分, 并将完成作业的顺序输出.Sample Input23Computer 3 3English 20 1Math 3 23Computer 3 3English 6 3Math 6 3Sample Output2ComputerMathEnglish3ComputerEnglishMath分析:(转)刚开始以为是背包, 但背包难以记录输出顺序 阅读全文
posted @ 2013-08-24 03:47 贾树丙 阅读(286) 评论(0) 推荐(0) 编辑