动态规划
pk972169909
小孩
展开
-
POJ_1742_Coins
[url]http://poj.org/problem?id=1742[/url][size=large]题意:现在有n种面值的货币,每种货币的面值为a[i],数量为c[i],求解能用这些货币组成多少种面值小于m的方案数.[/size][size=large]北大变态的测试数据,套模板多重背包O(VN)复杂度的算法超时,据说单调队列优化也超了……[/size][code="...2011-05-13 22:33:55 · 77 阅读 · 0 评论 -
UVA 10131 Is Bigger Smarter?
[code="C++"]// [解题方法]// 对大象增加编号属性i,以免排序后丢失// 对大象数组倒过来sort一下(W大的在前;若W一样,S小的在前)// 对sort好的数组倒过来dp最长子序列,记录前驱// 输出路径(由于是倒过来dp,所以输出路径不用栈,不断输出前驱即可)// 复杂度O(n^2)#include #include #inc...2013-01-29 16:01:14 · 71 阅读 · 0 评论 -
UVA 10069 Distinct Subsequences
[code="java"]// [解题方法]// dp[i][j]表示Z串的[0~i]子串在X串的[0~(j-1)]子串中的出现次数// 初始化:dp[i][0] = 0// 状态转移1:// dp[0][j+1] = (Z[0]==X[j])?(dp[0][j]+1):(dp[0][j])// 状态转移2(i>0):// dp[i][j+1] = (Z[...2013-01-29 16:23:05 · 82 阅读 · 0 评论 -
UVA 10154 Weights and Measures
[code="C++"]// 乌龟塔问题:每个乌龟有力量和重量,求最多能堆多少乌龟?// 注:乌龟的力量表示背上能承受的重量(包括自己的重量)// [解题方法]// 对乌龟数组按力量S从小到大sort(若S一样,无所谓)// 堆的时候是后面的乌龟堆在下面// 为什么这样sort得到的结果最好?// 原因:对于乌龟a和乌龟b,设as=aw+bw,那么必有...2013-01-30 09:40:54 · 143 阅读 · 0 评论 -
UVA 116 Unidirectional TSP
[code="C++"]// [解题方法]// 记忆化搜索(递归,子问题的结果用备忘录存起来,避免重复求解)// 二维nxt数组按照题意记录路径// dp[x][y](即dfs(x,y))表示从(x,y)走到最右边需要的最小花费#include #include #include #include #include using namespace...2013-01-30 09:53:30 · 96 阅读 · 0 评论 -
UVA 10003 Cutting Sticks
[code="C++"]// [解题方法]// 记忆化搜索(递归,子问题的结果用备忘录存起来,避免重复求解)// 设棍子长度n,输入的c[i]是棍子上的坐标// dp[x][y](即dfs(x,y))表示砍c[x]到c[y]段的最小花费// 每次砍c[x]~c[y]段的时候枚举砍的位置i// 状态转移:dp[x][y] = min(dp[x][i] + dp[i...2013-01-31 15:35:00 · 96 阅读 · 0 评论 -
UVA 10261 Ferry Loading
[code="C++"]// [题意]// n辆车按顺序安排在一个渡口的左边或右边,不超过渡口长度最多放多少辆// 相当于n个物品按顺序尽量多地放在两个相同容量的背包里// 如果放不下后面的就不放了,题目还要求输出要放的车都放哪边?记录路径即可// 由于是按顺序放,所以第i辆车放的话,i前面的车必然已经放好了,不可能不放// [解题方法]// dp[i...2013-01-31 16:34:19 · 448 阅读 · 0 评论 -
UVA 10271 Chopsticks
[code="C++"]// [解题方法]// 将筷子按长度从大到小排序// 排序原因:// 由于一组中A=3*i+1) );// 要j和j-1作为AB形成新的筷子组 不要j作为A形成新筷子组// 由于还有C,C>=B>=A,所以j被限制了范围,所以对于dp[i][j]:// 形成i个筷子组中最后一组的A...2013-02-01 11:47:31 · 90 阅读 · 0 评论 -
UVA 10201 Adventures in Moving - Part IV
[code="C++"]// [解题方法]// dp[i][j]表示到达第i个加油站剩余油量为j时的最小花费// 特殊地,dp[n][j]表示到达终点剩余油量为j时的最小花费// 状态转移:(设w[i]为每个加油站的位置,p[i]为油单价)// 行驶:dp[i][j-(w[i]-w[i-1])] = dp[i-1][j](0 l; getchar...2013-02-01 17:40:51 · 86 阅读 · 0 评论 -
【拓扑+DP】HDU 4109 Instrction Arrangement
KIDx的解题报告 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4109题意:输入点数n[编号0到n-1]和关系数,输入a,b,c,表示a操作做完后第c纳秒可以做b,问所有操作搞完至少花多长时间? Sample Input5 21 2 13 4 1 Sample Ou...2012-03-25 23:34:39 · 91 阅读 · 0 评论 -
【DP最大公共子序列】HDU 1159/1080/1503
KIDx的解题报告 第一题(比较简单,不详细解):HDU 1159 Common Subsequence题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 题意:求两个串的最长公共子序列代码中的dp[i][j]表示0到i-1跟0到j-1的最长公共子序列 #include <iostream>...原创 2012-03-11 18:04:53 · 83 阅读 · 0 评论 -
【最大不连续子序列和】HDU 2845 Beans
KIDx的解题报告 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2845题意:在图中取数,例如取了81之后,同一行的相邻两个不能取,还有81的上面那行和下面那行也不能取,问能取到的最大和是多少? 解析:对于一行来说,相邻的数不可同时取,容易得到状态转移方程:sum[i] = max (sum[i-2]+sum[i], s...2012-03-08 22:09:33 · 152 阅读 · 0 评论 -
POJ_3211_Washing Clothes
[url]http://poj.org/problem?id=3211[/url][color=red][size=large]题意是求夫妇两人洗完衣服用的最小时间 先按衣颜色分类,对于每种颜色的衣服,最优解是都平分即V/2,背包容量为洗衣服的花费时间,用01背包来标记是否可以通过组合组成某个容量。[b]最接近V/2的较大值就为两人洗完每种颜色衣服的最短时间[/b],把各种颜色衣...2011-05-13 23:05:42 · 76 阅读 · 0 评论 -
POJ_3260_The Fewest Coins
[url]http://poj.org/problem?id=3260[/url]以下是从网上拷过来的分析:[color=red][size=large]题意:John去买东西,东西的价格是T(12011-05-13 23:18:18 · 67 阅读 · 0 评论 -
【二维分组背包记录路径】暗黑破坏神
[url]http://openoj.awaysoft.com/JudgeOnline/problem.php?id=1634[/url][b][size=medium][align=center][color=green]暗黑破坏神[/color][/align][color=blue]Description[/color]无聊中的小x玩起了Diablo I...游戏...2011-08-24 19:48:55 · 499 阅读 · 0 评论 -
大连2011ACM网络赛【5道水题总结】……很黄很暴力
[size=medium]KIDx 的解题报告[/size][img]http://dl.iteye.com/upload/attachment/549202/25e5a98b-f15a-3820-93b6-bb9278333409.png[/img][url]http://acm.hdu.edu.cn/listproblem.php?vol=31[/url][b][size=...2011-09-04 18:04:17 · 277 阅读 · 0 评论 -
HDU 1087 Super Jumping! Jumping! Jumping!
[url]http://acm.hdu.edu.cn/showproblem.php?pid=1087[/url][size=medium]题意:求递增段最大和[color=blue]状态转移方程:dp[j] = max(dp[j], dp[i]+v[j])【前提v[j]>v[i], 构成递增】其中j>i, dp[i]是前i个中的最优状态, v[j]是j的价值[/color][/s...2011-06-02 18:59:23 · 75 阅读 · 0 评论 -
【最长递增子序列O(nlgn)算法】HDU 1025
[url]http://acm.hdu.edu.cn/showproblem.php?pid=1025[/url][b][size=medium]很难说清楚,自己模拟几下就会慢慢明白,模板题求的是最长递增子序列的长度[/size][/b][code="C++"]#include #include #include //#include #include ...2011-09-10 15:36:36 · 129 阅读 · 0 评论 -
Codeforces Beta Round #4 (Div. 2 Only) 【完整题解】
[size=medium]KIDx 的解题报告 [url]http://codeforces.com/contest/4[/url]以下省略头文件[color=red]A题[/color][color=brown]非一般的水[/color][/size][code="C++"]int main(){ int x; while (~scanf ("%d", &...2011-11-08 00:33:07 · 109 阅读 · 0 评论 -
Codeforces Beta Round #96 (Div. 2)【完整题解】
[size=medium]KIDx 的解题报告题目链接:[url]http://codeforces.com/contest/133[/url]以下省略头文件,[color=brown]前三题是水题,不解释[/color][color=red]A题[/color][/size][code="C++"]#define M 105char s[M];int main()...2011-12-06 17:03:38 · 130 阅读 · 0 评论 -
《挑战编程》第11章-动态规划
UVa 题号: 10131 Is Bigger Smarter? (越大越聪明?) 题解UVa 题号: 10069 Distinct Subsequences (不同的子序列) 题解UVa 题号: 10154 Weights and Measures (重量和力量) 题解UVa 题号: 116 Unidirectional TSP (单向旅行商问题) 题解UVa 题号: 10003 Cutti...2013-02-02 12:46:06 · 228 阅读 · 0 评论