
动态规划
文章平均质量分 77
蚕豆儿
这个作者很懒,什么都没留下…
展开
-
HDU 1466 计算直线的交点数
http://acm.hdu.edu.cn/showproblem.php?pid=1466 参考了同学的解题报告及思路 问题:求n根直线所组成的所有交点数。 分析:前3根直线都很好分析,很容易理解,所以我们从第三根再增加一根到第四根来分析,这里能包含后面的所有情况 当n=4时: 1.四条直线全部平行,无交点 2.其中三条平行,交点数: (n-1)*1 +0=3原创 2013-07-29 10:54:11 · 1173 阅读 · 0 评论 -
POJ 3260 The Fewest Coins
http://poj.org/problem?id=3260 好吧。一个多重背包的综合运用,要用到完全背包和多重背包,背包问题不熟,所以贴个别人的代码慢慢研究吧。。 代码来源:http://blog.youkuaiyun.com/alfredtofu/article/details/6194597 别人代码: //f1[i]表示支付i元所需的最小硬币数 //f2[i]表示找i元所需的最小硬转载 2013-08-21 21:19:44 · 759 阅读 · 0 评论 -
BNU The Twin Towers
http://www.bnuoj.com/bnuoj/problem_show.php?pid=15579 一动态规划题。。。看了别人的代码,照着打了一遍,动规还是不怎么会。。。想不到怎么建状态转移方程。。。和网络流里面不会建图一样。。。哭。。 AC代码: #include <iostream> #include <cstdio> #include <limits.h> #include <string.h> #define max(a,b) a>b?a:b //如果a大于b则返回a的值,否则返原创 2013-08-19 20:41:32 · 747 阅读 · 0 评论 -
HDU 1421 搬寝室
http://acm.hdu.edu.cn/showproblem.php?pid=1421 动态规划题。 我们可以用一个二维dp来存储第有i个物品取拿j次所用的最少体力。首先进行从小到大的排序。则拿相邻的两个最省力。物品重量存在w数组中。 PS:以下数据里面的 i 代表有i个物品, j 代表这 i 个物品分 j 次拿。 因此我们可以增加一个物品 i ,拿取的次原创 2013-07-29 18:28:13 · 984 阅读 · 0 评论 -
HDU 1159 Common Subsequence
http://acm.hdu.edu.cn/showproblem.php?pid=1159 思路来源于同学的讲解。。 解题思路:我们从字符串的最后一个字符开始讨论。设两个字符串的长度分别为m、n.如果最后一个字符串相等,那么字符串的最长公共子序列必然在m-1和n-1的剩余子串中产生。所以我们有: dp[i][j]=dp[i-1][j-1]+1; 如果最后一个字符原创 2013-07-28 16:49:47 · 688 阅读 · 0 评论 -
hdu 1114 Piggy-Bank
http://acm.hdu.edu.cn/showproblem.php?pid=1114 这个题一开始看到首先想到贪心。。。后来发现不对,是完全背包问题。。 状态转移方程为:dp[j] = min(dp[j-w[i]]+f[i],dp[j]) 其中,dp[j]是重量为j的时候最小价值,w[i]为第i个物品重量,f[i]为第i个物品的价值 AC代码: #in原创 2013-08-03 17:08:56 · 903 阅读 · 0 评论 -
HDU 2059 龟兔赛跑
http://acm.hdu.edu.cn/showproblem.php?pid=2059 这个题用动态规划做。 问题:求到终点最短时间 因此,只要看乌龟和兔子到达终点的时间哪个短就行了。 兔子跑完全程用的时间很好求:time = L / VR 最主要的就是乌龟的最短时间。 我动态规划不是很懂,因此问了一下同学,给我讲解了一下,通过自己的理解,开始对动态规划有一点原创 2013-07-28 20:00:11 · 1654 阅读 · 3 评论 -
HDU 1087 Super Jumping! Jumping! Jumping!
http://acm.hdu.edu.cn/showproblem.php?pid=1087 AC代码: #include #include #include #include using namespace std; int value[1010]; int dp[1010]; int main() { int n,i,j,maxx,ma; while(sc原创 2013-07-27 20:34:32 · 716 阅读 · 0 评论 -
HDU 1176 免费馅饼
http://acm.hdu.edu.cn/showproblem.php?pid=1176 中文题,问题很简单,就是求他最多能接到多少个馅饼 这个题如果打出二维时间位置表很容易看出来和 杭电2084数塔 一样,都可以从最下面开始往上推,看总和最大。他能走的除了在0和10位置外都有3种选择。 如下图括号里面的是和。 行代表时间t,列代表位置。 注意:起点必原创 2013-07-27 16:04:19 · 950 阅读 · 0 评论 -
杭电 HDU 1003 Max Sum
http://acm.hdu.edu.cn/showproblem.php?pid=1003 问题:求里面连续最大和。 一开始的WA,发现是输出格式有错误。。。然后才发现我的测试数据在第一个为最大值时无法得到正确结果,因为我直接跳过了下标为0的数据。后来才发现。。 AC代码: #include #include //#include #include using原创 2013-07-26 20:39:32 · 827 阅读 · 0 评论 -
杭电 HDU 2084 数塔
http://acm.hdu.edu.cn/showproblem.php?pid=2084 第一次用动规,还是没理解那个状态转移方程怎么写,感觉就是用递归,但是书上说因为递归速度太慢所以用动规。。。 这个题一开始按照书上动规的思路在想状态转移,就是要求最后一个的最大值就要知道前面一个数的最大值。。想了半天没想明白,后来同学给我说不要那样跟着题目思路从 顶层往下走,那样好麻烦的,原创 2013-07-26 10:32:40 · 1447 阅读 · 0 评论 -
hdu 1058 Humble Numbers
http://acm.hdu.edu.cn/showproblem.php?pid=1058 题意:就是不断的用已知的a[i]乘以2,3,5,7这四个数求里面的最小值(但是要比已知的最后一个a[i]要大) AC代码: #include #include #include using namespace std; int a[6000]; int main() {原创 2013-07-31 11:01:50 · 644 阅读 · 0 评论 -
HDU 1158 Employment Planning
http://acm.hdu.edu.cn/showproblem.php?pid=1158 第一个完全搞懂的动规题!!前面的都是看代码,搞懂动规的思路和解题方式。值得纪念!! 问题: 工厂招工人,招一人花费a元,每个月每个工人的工资为b元,解雇一个工人要支付他c元。 给你n个月工作计划,每个月最少需要的人数为存在m[i]中。求n个月最少花费多少元。 分析:原创 2013-07-30 20:19:24 · 1014 阅读 · 0 评论 -
病毒(湖南省第八届大学生计算机程序设计竞赛)
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30746#problem/J 病毒 Time Limit:3000MS Memory Limit:131072KB 64bit IO Format:%lld & %llu Submit Status Practice CSU 1120原创 2013-09-09 11:14:52 · 1395 阅读 · 0 评论