动态规划
文章平均质量分 94
炒饭君
这个作者很懒,什么都没留下…
展开
-
POJ 1506 Largest Rectangle in a Histogram (dp的思想)
POJ 1506 Largest Rectangle in a Histogram (dp的思想)#include #include #include #include using namespace std;const int maxn=100010;unsigned long long a[maxn],l[maxn],r[maxn];int n;void com原创 2013-08-24 14:13:08 · 750 阅读 · 0 评论 -
uva 10440 Ferry Loading II
uva 10440 Ferry Loading II题目意思,给定 T 组测试数据,每组测试数据如下 船每次能装 n 辆车 ,来回需要 2*t 时间,m辆车及其到达时间。求:在最少的次数下的时间 (最后一次不需要回头) 以及 最少的次数用 DP可以求解 ,效率 O(n^2)原创 2014-03-10 23:06:50 · 1511 阅读 · 0 评论 -
uva 11724 Evaluate the Expression
BEvaluate the ExpressionInput: Standard InputOutput: Standard Output In this problem, we will consider a mathematical expression according to the following BNF grammar: =原创 2014-03-28 16:11:19 · 1658 阅读 · 0 评论 -
uva 11818 Mouse & a Cheese
uva 11818 Mouse & a Cheese题目大意:一个老鼠想吃蛋糕,但是老鼠四周都被东西挡住了,两个人玩游戏,轮流拿掉一根火柴,问你谁能赢。解题思路:记忆优化DP,DP(当前的火柴的情况2^12,当前谁开始拿,老鼠的位置,蛋糕的位置)转移也就是,当前这个人取他的最优解。暴力模拟了位运算,所以效率低了很多。原创 2014-03-29 12:41:00 · 1369 阅读 · 0 评论 -
HDU 3651 A Simple Problem (DP 记忆化搜索 或者 bfs)
HDU 3651 A Simple Problem (DP 记忆化搜索 或者 bfs)题目大意:你的左右手指一开始分别在5,6位置,现在要按顺序按出给定的数字,至少要几步?要求:(1)左手始终在右手左边(2)在1步内,左手可以选择 向右,向左,按下这个数字三种操作之一,右手同样的操作可以在同1步内进行。(3)在1部内,左手和右手不能同时选择 按下数字 这个操作。解题思路:暴力枚举状态,状态也就是 给定的一串数字当前 要按到第几个数字了以及左右手的位置解题代码:写了两种实现方法。原创 2014-06-03 18:54:43 · 1117 阅读 · 0 评论 -
POJ 1018 Communication System (动态规划)
POJ 1018 Communication System (动态规划)题目大意: 有T组测试数据,每组1个n,表示n行,接下来n行,每行一个m,表示有m个管道,每个管道有流量和费用,最后求从n行中,每行选择1个管道,要求 B/P最大 ,B表示所选的那个方案中n个管道的最小的那个的流量,P表示n个管道费用和。解题思路: 朴素的动态规划,dp[i]记录,当前B为i的P,也就是流量的最小费用和。实现可以利用队列代替滚动数组。原创 2014-05-25 00:23:16 · 1249 阅读 · 1 评论 -
POJ 1160 Post Office (动态规划)
POJ 1160 Post Office (动态规划)题目大意:有n个村庄,m个邮局,每个村庄的位置坐标告诉你,现在要将m个邮局设立在这n个村庄里面,问你最小花费是多少?花费为每个村庄到最近的邮局的距离和。解题思路:dp[i][j] 记录 i个邮局 j个村庄的最小花费,cost[k+1][j],记录在k+1号村庄到 j 号村庄设立一个邮局的最小花费。那么:dp[i][j]=min { dp[i][k]+cost[k+1][j] }最后输出dp[m][n]即可。但是在k+1号村庄到 j 号村原创 2014-07-09 11:13:43 · 1714 阅读 · 0 评论 -
HDU 4001 To Miss Our Children Time (动态规划)
HDU 4001 To Miss Our Children Time (动态规划)题目大意:有n块砖头,每块砖头有长,宽,高和型号,问你最多建多高?型号0的特点是:长度>=它下面砖头的长度 且 宽度>=它下面砖头的宽度型号1的特点是:长度>=它下面砖头的长度 且 宽度>=它下面砖头的宽度 且 面积>=它下面砖头的面积型号2的特点是:长度>它下面砖头的长度 且 宽度>它下面砖头的宽度解题思路:先排好序,排序方法贪心的方法,先按长后按宽从小到大排,如果长宽相等就按照型号从大到小排,如果再相等,原创 2014-08-03 22:31:10 · 777 阅读 · 0 评论 -
uva 11324 The Largest Clique(图论-tarjan,动态规划)
uva 11324 The Largest Clique(图论-tarjan,动态规划)题目大意:T组测试数据,给一张有向图G,求一个结点数最大的结点集,使得该结点中任意两个结点 u 和 v满足:要么 u 可以到达 v, 要么 v 可以到达 u(u 和 v 相互可达也可以)。解题思路:”同一个强连通分量中的点要么都选,要么不选。把强连通分量收缩点后得到SCC图,让每个SCC结点的权等于它的结点数,则题目转化为求SCC图上权最大的路径。由于SCC图是一个 DAG, 可以用动态规划求解。“原创 2014-08-05 11:19:16 · 1532 阅读 · 0 评论 -
HDU 4026 Unlock the Cell Phone(动态规划)
HDU 4026 Unlock the Cell Phone(动态规划)题目大意:给一张图,问你解锁屏幕的方案数,0 表示按键,当被触摸过可以跳过,1表示不能被跳过,2表示可以被跳过。问你按键的方法数?解题思路:用“ 0 1 ” 的二进制 表示0号按键的状态。原创 2014-08-12 16:06:37 · 957 阅读 · 0 评论 -
HDU 4028 The time of a day(动态规划)
HDU 4028 The time of a day(动态规划)题目大意:有n组测试数据,接下来n和m,n表示n个指针1~n,分别是 k 下回到起点,问你从n个选出任意多个指针,同时停在起点算1天,1天的时间超过m的方案有多少种?解题思路:动态规划,状态较分散,所以用Map离散化。原创 2014-08-12 16:24:35 · 942 阅读 · 0 评论 -
POJ 1185 炮兵阵地(动态规划)
POJ 1185 炮兵阵地(动态规划)题目大意:炮兵有自己的攻击范围,P表示可以放炮兵,两个炮兵之间不能相互攻击,问你最多放置多少个炮兵。解题思路: 离散化炮兵的状态,之枚举一层的有效状态,那么记录前两层,那么就可以算出第三层的最大值,动态规划。原创 2014-08-15 16:09:11 · 945 阅读 · 0 评论 -
HDU 5009 Paint Pearls (动态规划)
HDU 5009 Paint Pearls (动态规划)题目大意: 给定一系列的颜色,可以划分为任意多个任意大小的区间,每个区间的花费为 区间颜色数的平方,问你总花费最小是多少?解题思路: 用动态规划,双向链表其实就是维护前面不同的元素,相同的元素删除。 我参照的是:http://blog.csdn.net/u011345136/article/details/39759935原创 2014-10-06 18:28:24 · 1177 阅读 · 0 评论 -
HDU 4044 GeoDefense(动态规划)
HDU 4044 GeoDefense(动态规划)题目输入描述:有T组测试数据,每组首先一个n,表示一颗生成树有n个节点接下来n-1行表示n-1条边描述这个生成树接下来一行表示你的总的钱数sum接下来n行,第i行表示树上的第i号节点可以建 ki 个 塔,每个塔两个数字参数表示花费和造成的伤害。这是个塔防游戏,敌人从树根(1号节点)出发,叶子节点是你的基地,敌人的路线不固定,经过每个节点的塔后受到伤害问你在总的花费下,你选择建一些塔,敌人的血量至多是多少才能保证不伤害到你的基地。解题思原创 2014-11-10 16:15:47 · 948 阅读 · 0 评论 -
uva 348 - Optimal Array Multiplication Sequence
uva 348 - Optimal Array Multiplication Sequence题目大意:可以任意结合律,求矩阵乘法的最大值可以用记忆优化DP,划分子问题,DP(L,R) ,记录 【L,R】区间最大值。DP(l,r)=max(DP(l,k)+DP(k,r)+dp(i,k)+dp(k,j)+a[i][0]*a[k][0]*a[j-1][1])原创 2014-01-30 14:46:48 · 1079 阅读 · 0 评论 -
uva 116 Unidirectional TSP (dp)
uva 116 - Unidirectional TSP题目大意:从最左边一列的一个位置出发到最右边一个位置,可以三个方向 (x+1,y) ,(x+1,y-1),(x+1,y+1) 经过的数字使之和最小,问你解决方案,输出逻辑位置最小的那一个。解题思路:这一题解题思路很明显二维DP可以搞定,但是记录路径逻最小,也就是从后往前DP ,找到第一列和最小的那个,也就是起点,那么从起点出发,根据记录的DP值很快找到路径。原创 2014-01-26 21:52:42 · 1671 阅读 · 0 评论 -
uva 11400 Lighting System Design (dp)
c/c++程序设计 uva 11400 - Lighting System Design (dp)题目大意:多组测试数据 0 结束,输入灯的种类数 n , 然后 n 行每个依次是灯需要的电压,购买这种电压的钱,这种电压下的每盏灯的钱,灯的数目。条件:低电压的灯可以用高电压代替。输出:购买这些灯需要的最小的钱数。首先种类按电压从高到低排序,去更新低电压的钱。用 dp[k] 记录装到第k种需要的最小的花费,维护更新这个数组即可原创 2014-01-13 13:37:55 · 1284 阅读 · 0 评论 -
HDU 4055 Number String (dp的思想)
Number StringTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1052 Accepted Submission(s): 456Problem DescriptionThe sign原创 2013-09-09 21:30:41 · 900 阅读 · 0 评论 -
POJ 3415 Max Sum of Max-K-sub-sequence (线段树+dp思想)
Max Sum of Max-K-sub-sequencePOJ 3415 Max Sum of Max-K-sub-sequence (线段树+dp思想)题目大意:T 组数据,求 n 个数 连续子串的最大和是多少,子串要求长度不超过 k,以及这是个环形,如果多解,满足起点be最小,其次终点en最小解题思路:枚举每个起点be,终点en一定是在 be<=en<=be+k-1 这个范围内,所以求这个范围内的连续最长和即可,可以用 sum[en] -sum[be-1] ,其中sum[x]表示前x个数的和,原创 2013-09-04 21:42:38 · 1044 阅读 · 0 评论 -
HDU 3016 Man Down (线段树+dp)
Man DownTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1391 Accepted Submission(s): 483Problem DescriptionThe Game “Man Down 1原创 2013-10-05 14:00:05 · 1072 阅读 · 0 评论 -
POJ 3997 Stock Chase
Stock ChaseTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 455 Accepted: 131DescriptionI have to admit, the solution I proposed last year for solving the原创 2013-09-26 15:25:08 · 1013 阅读 · 0 评论 -
UVA 11137 - Ingenuous Cubrency
Problem I: Ingenuous CubrencyPeople in Cubeland use cubic coins. Not only the unit of currency is called acube but also the coins are shaped like cubes and their values are cubes. Coins with value原创 2013-10-30 00:19:14 · 1376 阅读 · 0 评论 -
UVA 10943 - How do you add?
Problem A: How do you add?Larry is very bad at math - he usually uses a calculator, which worked well throughout college. Unforunately, he is now struck in a deserted island with his good buddy Ry原创 2013-10-30 00:33:18 · 1536 阅读 · 0 评论 -
Google Code Jam 2009, Round 1C C. Bribe the Prisoners (记忆化dp)
题目大意:t 组测试数据,n个人在监狱,要放出m个人,每放出一个人,他周围的人(两边连续的直到碰到空的监狱或者尽头)都要贿赂1个钱,问最少的总花费解题思路:记忆化dp,dp(i,j) 表示从 编号 a[i] ~ a[j] 不包含 a[i] 与 a[j] 的子树的花费状态转移方程 d[i][j]=min(dp(i,k)+dp(k,j)+(a[j]-a[i]-2),d[i][j]) 注意,一开始添加哨兵,0号位与n+1号位原创 2013-11-16 21:09:49 · 1601 阅读 · 0 评论 -
LA 3516 - Exploring Pyramids (记忆化搜索dp)
Archaeologists have discovered a new set of hidden caves in one of the Egyptian pyramids. The decryption of ancient hieroglyphs on the walls nearby showed that the caves structure is as follows. There原创 2013-11-12 14:33:10 · 916 阅读 · 0 评论 -
HDU 3696 Farm Game (dp+拓扑排序)
Farm GameProblem Description“Farm Game” is one of the most popular games in online community. In the community each player has a virtual farm. The farmer can decide to plant some kinds of cr原创 2013-10-15 20:55:39 · 1011 阅读 · 0 评论 -
POJ 2385 Apple Catching
Apple CatchingTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 6639 Accepted: 3229DescriptionIt is a little known fact that cows love apples. Farmer John h原创 2013-11-03 00:44:44 · 1331 阅读 · 0 评论 -
UVA 11375 - Matches
Problem E: MatchesWe can make digits with matches as shown below: Given N matches, find the number of different numbers representable using the matches. We shall only make numbers grea原创 2013-11-04 00:07:58 · 1639 阅读 · 33 评论 -
POJ 3616 Milking Time
Milking TimeTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 3852 Accepted: 1623DescriptionBessie is such a hard-working cow. In fact, she is so fo原创 2013-11-04 20:06:18 · 1156 阅读 · 0 评论 -
Codeforces Round #215 (Div. 2) B. Sereja and Suffixes
B. Sereja and Suffixestime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputSereja has an array a, consisting of n intege原创 2013-12-13 12:53:04 · 893 阅读 · 0 评论 -
HDU 4049 Tourism Planning(动态规划)
HDU 4049 Tourism Planning(动态规划)题目大意:输入描述:第一行两个数字表示,有n个人,m个城市接下来 m个数字表示每个人参观这些城市的花费接下来n行m列表示每个人参观每个城市得到的满意度接下来n行n列表示每参观一个城市互相之间的影响的额外满意度,Bij (1<=i<=N, 1<=j<=N), 0<=Bij<=1000, Bij=0 if i=j, Bij=Bji.你可以安排这n个人中的任意多个依次参观这m个城市0~m-1,中途也可以让一个人退出,退出后不能再回来,问原创 2014-11-05 20:56:42 · 1003 阅读 · 0 评论