动态规划
文章平均质量分 81
EaShion1994
这个作者很懒,什么都没留下…
展开
-
POJ_2533 Longest Ordered Subsequence(DP)
Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 35276 Accepted: 15481 Description A numeric sequence of ai is ordered if a1 a原创 2015-01-27 22:50:06 · 635 阅读 · 0 评论 -
HDU_1257 最少拦截系统 (dp)
题目请点我 题解: 这道题是一道很简单的题目,但是比赛的时候卡了很久。发现自己总是在比赛的时候不会快速的去快速建模,卡死到一道题上面。这次比赛最终竟只做出了这一道题,really sucksssss. 练的太少了。。。 这道题其实有很多种方法可以解: 1.暴力 每设置一个标杆从头到尾遍历一次,将所有能消灭的导弹打掉,看最后需要遍历几次; 2.贪心 设置一个标杆数组,每次从头判断使用那个原创 2015-06-23 20:38:27 · 668 阅读 · 0 评论 -
HDU_2067 小兔的棋盘(DP)
题目请点这里 题解: 这道题目要求不能穿过对角线,而上下的情况是一样的。我们可以仅考虑一边,是一道动态规划的题目。从画图可以看出,当格点不再对角线上时可以从上方dp[i-1][j]以及左方dp[i][j-1]两个格点直接到达,而位于对角线上时,由于不能穿过对角线,只能从一边到达。所以得到状态方程: dp[i][j] = dp[i][j-1];(i = j) dp[i][j] = dp[i][原创 2015-06-27 11:19:03 · 845 阅读 · 0 评论 -
HDU_1114 Piggy Bank(DP)
Piggy-Bank Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 13434 Accepted Submission(s): 6788 Problem Description Before ACM can原创 2015-02-03 19:49:19 · 624 阅读 · 0 评论 -
POJ_3616 Milking Times(DP)
题目请点我 题解: 简单dp,可以有两种解法,时间复杂度分别是O(N) || O(M^2),都需要对interval排序预处理。 O(N): 对时间轴进行dp,当时间与某个interval的起始时间重合时,对该interval的终止时间dp。 O(M^2): 对每个interval与在他之前满足条件的interval叠加。 注意休息时间R,可以在输入时进行预处理,如果+R不超过N就+原创 2015-09-04 15:58:36 · 480 阅读 · 0 评论 -
POJ_3280 Cheapest Palindrome(DP)
题目请点我 题解: 题目的意思是有一个长度为M的字符串,一共包含N个字母,可以在字符串基础上添加或删除字母,使字符串是一个回文串。 题目看起来比较复杂,字符串可增可减,增减的位置还不确定。参考了别人的博客后发现其实增减的效果是一样的,只需要挑最优的一种方法就好了。减去一个字母,效果相当于在一个对应位置加上该字母。 长度为1的本身就是回文串,随着字符串长度不断增加,我们可以选择在字符串两边添原创 2015-09-04 17:32:31 · 527 阅读 · 0 评论 -
POJ_1742 Coins(DP)
题目链接 题解: 这道题和杭电上的2844是一样的,但是poj上面的数据可能要强一些。在杭电上可能模板多重背包就可以过,但是这里就要变通一下,今天再做到,配合着杭电2844,把这道题的做法好好整理了一下,一共三种方法dp。 方法一:多重背包记录状态 因为题目只要求得到有多少个可达,所以可以用bool表示dp数组,变化递推式,最后压线AC。 递推式变化为 dp[i] |= dp[i原创 2015-09-05 11:09:02 · 445 阅读 · 0 评论 -
最长递增子序列(LIS)-总结与相关展开
LIS是典型的DP问题,之前有做到过一些类型的LIS题目,现在把LIS的相关题型做一个总结,也是对思路的一个梳理。 一、最基础的LIS问题: 给出一个序列,只要求输出最长递增子序列的长度,对于这种题目我们可以用两种方法定义dp数组: 1.O(N^2) dp[i]:以ai为末尾的最长上升子序列长度//方法一: //O(N^2) //定义:dp[i]:以ai为末尾的最长上升子序列长度 //dp原创 2015-02-05 20:54:03 · 592 阅读 · 0 评论 -
HDU_2059 Race of rabbit and tortise(DP)
龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 12223 Accepted Submission(s): 4584 Problem Description 据说在很久很久以前,可怜的兔子经历了人生原创 2015-01-27 22:04:51 · 643 阅读 · 0 评论 -
POJ_2385 Apple Catching(DP)
题目请点我 题解: 题目符合从多个最优状态得到当前的最优状态,所以是一道DP没错,那么关键是dp数组的定义以及递推方程。 开始的时候按照自己的思路,将连续多次的同一水果掉落合并, dp数组dp[i][j]定义:在转过i次后到达j位置的最优结果。 递推关系:dp[i][j] = max(dp[i][j],dp[i-1][k]+get(k,j)) (k:i-1~j) get函数得到k,原创 2015-08-31 14:53:21 · 580 阅读 · 0 评论 -
HDU_最大报销额(DP)
最大报销额 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 17519 Accepted Submission(s): 5137 Problem Description 现有一笔经费可以报销一定额度的发票。允原创 2015-02-04 22:33:08 · 604 阅读 · 0 评论 -
POJ_3181 Dollar Dayz(dp,完全背包)
题目请点我 题解: 这道题是一道完全背包,递推式为:dp[i][j] = dp[i][j-1]+dp[i-j][j]; 表示用前j个数组成i包括两种情况:不包括j组成i和用j组成i-j。 但是因为结果很大,而是用大数又会超时,看到网上的解法,但是博主也是在大数跑出来范围后才决定用这种方法,所以还是比较坑的。 因为LL最大为10^18数量级,所以用10^18取余。 代码实现: #inc原创 2015-09-18 17:29:40 · 574 阅读 · 0 评论 -
HDU_5459 Jesus Is Here(递推)
Problem Description I've sent Fang Fang around 201314 text messages in almost 5 years. Why can't she make sense of what I mean? ``But Jesus is here!" the priest intoned. ``Show me your messages."原创 2015-09-20 15:45:55 · 668 阅读 · 0 评论 -
HDU_5303 Delicious Apples(枚举+离散化)
题意: 圆形的道路长L,有N棵苹果树,每棵树上有Xi个苹果,现在拿着一个容量为K的篮子,问最少走多远距离能把所有苹果都拿回来。 思路: 看上去很简单,容易有思路,但是算法总会有问题,贪心不好做。最后还是参考了网上的解法...三种情况,左半边来回拿,右半边来回拿,转一圈拿。现在的问题就是转不转?转的话左右各拿几个?按照苹果树不好去计算,离散化每一个苹果,然后dp出单边的cost。之后枚举所有转原创 2016-12-02 20:37:19 · 340 阅读 · 0 评论 -
HDU_2546 饭卡(DP)
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 13348 Accepted Submission(s): 4621 Problem Description 电子科大本部食堂的饭卡有一种很诡异的设计,即原创 2015-02-01 23:37:58 · 757 阅读 · 0 评论 -
K好数(DP)
问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。输入格式 输入包含两个正整数,K和L。输出格式 输出一个整数,表示答案对1000000007取模后的值。原创 2015-03-16 20:59:25 · 692 阅读 · 0 评论 -
HDU_3565 Are You Busy(DP,状态转换)
AreYouBusy Description Happy New Term! As having become a junior, xiaoA recognizes that there is not much time for her to AC problems, because there are some other things for her to do, which makes h原创 2015-02-14 23:18:23 · 607 阅读 · 0 评论 -
UVA_10405 Longest Common Subsequence(DP)
Longest Common Subsequence Given two sequences of characters, print the length of the longest common subsequence of both sequences. For example, the longest common subsequence of the fo原创 2015-01-26 22:59:29 · 798 阅读 · 0 评论 -
UVA_103 Stacking boxes(DP)
Stacking Boxes Background Some concepts in Mathematics and Computer Science are simple in one or two dimensions but become more complex when extended to arbitrary dimensions. Consider s原创 2015-01-29 23:04:42 · 757 阅读 · 0 评论 -
HDU_1950 Bridging Signals(DP)
Bridging signals Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 774 Accepted Submission(s): 504 Problem Description 'Oh no, the原创 2015-01-28 22:18:43 · 687 阅读 · 0 评论 -
HDU_2602 Bone Collector(DP)
Bone Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 33651 Accepted Submission(s): 13843 Problem Description Many year原创 2015-01-30 23:37:42 · 682 阅读 · 0 评论 -
HDU_2084 数塔(DP)
数塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 24465 Accepted Submission(s): 14717 Problem Description 在讲述DP算法的时候,一个经典的例子就是数原创 2015-01-25 22:20:29 · 918 阅读 · 0 评论 -
HDU_2639 Bone Collector II(DP)
Bone Collector II Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2610 Accepted Submission(s): 1368 Problem Description The titl原创 2015-02-01 22:53:26 · 497 阅读 · 0 评论 -
HDU_2844 Coins(DP)
Coins Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7938 Accepted Submission(s): 3240 Problem Description Whuacmers use coins.原创 2015-02-03 22:28:10 · 545 阅读 · 0 评论 -
POJ_2923 Relocation(DP)
A - Relocation Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d原创 2015-02-05 23:43:53 · 573 阅读 · 0 评论 -
CF_505C Mr. Kitayuta, the Treasure Hunter
C. Mr. Kitayuta, the Treasure Hunter time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output The Shuseki Islands are原创 2015-02-06 22:52:06 · 928 阅读 · 0 评论 -
HDU_1712 ACboy needs your help(DP)
ACboy needs your helpTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4538 Accepted Submission(s): 2428Problem Description ACboy has N cours原创 2015-02-08 22:33:17 · 590 阅读 · 0 评论 -
UVA_624 CD
CD UVA 624 You have a long drive by car ahead. You have a tape recorder, but unfortunately your best music is on CDs. You need to have it on tapes so the problem to solve is: you have a tape N minute原创 2015-02-09 22:07:36 · 537 阅读 · 0 评论 -
HDU_2955 Robberies(DP,01,double)
RobberiesProblem Description The aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually gets caught in the end, often because they become too greedy. He has dec原创 2015-02-10 23:15:17 · 640 阅读 · 0 评论 -
POJ_3260 The Fewest Coins(混合背包)
The Fewest Coins Description Farmer John has gone to town to buy some farm supplies. Being a very efficient man, he always pays for his goods in such a way that the smallest number of coins changes h原创 2015-02-11 23:25:07 · 895 阅读 · 0 评论 -
POJ_2392 Space Elevator(多重背包)
Space Elevator Description The cows are going to space! They plan to achieve orbit by building a sort of space elevator: a giant tower of blocks. They have K (1 <= K <= 400) different types of blocks原创 2015-02-12 22:20:26 · 614 阅读 · 0 评论 -
POJ——2479 Maximum sum(dp)
题意: 求一个数列内不相交的两个数列的最大和。 思路: 之前做过求最大子序列和的题目,利用dp。但是这道题目是两段不相交的数列,我们可以从前到后和从后到前进行两次dp,然后便可以求出他们的最大和。 dp关系式如下: dp1[i] = max(dp1[i-1] + num[i],num[i]);//限制了num[i]一定参与,保证了数列的连续性 dp2[i] = max(dp2[i+1]原创 2016-12-08 15:28:40 · 484 阅读 · 0 评论