基础dp
leoxry
天道酬勤,拼搏一个最好的自己送给未来的自己,每天开开心心敲代码就是一种幸福,不计得失,回归刚开始学习时内心的单纯
展开
-
高数Umaru系列(9)——哈士奇(01背包)
think: 1 学会专心致志的做题,不要乱想太多,效率的降低往往因为分心和焦虑,学会平和的看待得失,不争一时之气。 2 01背包同样离不开状态转移方程,动态规划的题目寻找合适的状态转移方程至关重要。 3 时间复杂度和空间复杂度的理解和优化同样对于宏观学习的微观部分都有着不可忽视的重要作用。sdut原题链接高数Umaru系列(9)——哈士奇 Time Limit: 1000MS Memory原创 2017-02-10 11:18:28 · 560 阅读 · 0 评论 -
【dp】Making the Grade POJ - 3666
Think: 1知识点:dp+sort()快速排序 2状态转移方程dp[i][j]:i个数以b[j]作为第i个数的当前状态最优解;dp[i][j] = abs(a[i]-b[j]) + min(dp[i-1][k]) 1<=k<=n;以下为Accepted代码#include <cstdio>#include <cstring>#include <algorithm>#include <原创 2017-08-11 09:14:12 · 401 阅读 · 0 评论 -
【dp+桶】Sorting Railway Cars CodeForces - 606C
Think: 1知识点:dp+桶 2反思: (1):认真读题,理解题意,补题过程中发现题目的一些关键点之前自己做的时候都没有发现,比如按照递增顺序和1<=Pi<=n这两个关键条件 (2):不要固话思维,要经常反思和思考如何将知识点巧妙地结合在一起,将一些好的思想互相融合,进而尝试去创造新的算法 3方法: 最终状态为递增顺序,题目提示数据1<=Pi<=n,因此最终状态为按照1递增的等差数列原创 2017-09-21 10:41:02 · 378 阅读 · 0 评论 -
【dp/二分+暴力】MAGRID UVALive - 5983
Think: 1知识点:dp/二分+暴力 2题意:从(1, 1)点到达(n, m)点,每经过一个点可能会失去能量或者得到能量,询问最小的出发能量使得存在一条路径,路径经过每一点时能量值大于0,已知出发点(1, 1)和终点(n, m)点可获得或者会失去能量为零 3思路: 1>dp: 状态转移方程: (1)i == n && j == m:dp[i][j] = 1; else (2)i =原创 2017-09-07 17:16:03 · 320 阅读 · 0 评论 -
C - Monkey and Banana HDU - 1069——基础dp
Think: 1知识点:基础dp 2题意:询问n种箱子在满足 1>可以不同面为底 2>一个叠一个 3>叠的箱子中上面的箱子长和宽都严格小于下面的箱子的长和宽 4>无限个箱子 条件下能够叠的最高高度vjudge题目链接以下为Accepted代码——基础dp#include <cstdio>#include <cstring>#include <algorithm>using name原创 2017-08-07 11:24:48 · 403 阅读 · 0 评论 -
A - Max Sum Plus Plus HDU - 1024——基础dp
Think: 1知识点:基础dp 2题意:n个数分成m部分的最大值二维表示dp[i][j]:j个数分成i部分的最大值状态转移方程dp[i][j] = max(dp[i][j-1]+a[j], max(dp[i-1][k])+a[j]), 0<k<j一维优化dp[j]数组表示前j个数分成当前i部分的最大值mav[j]数组表示第j层的最大值状态转移方程dp[j] = max(dp[j-1]原创 2017-08-07 09:33:50 · 553 阅读 · 0 评论 -
M - Help Jimmy POJ - 1661 ——dp
Think: 1知识点:dp 2动态转移方程dp[i][0]:表示从第i个木板左端点跳跃的当前最优解dp[i][1]:表示从第i个木板右端点跳跃的当前最优解vjudge题目链接以下为Accepted代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int inf = 0x3f原创 2017-08-11 11:34:30 · 289 阅读 · 0 评论 -
Q - Phalanx HDU - 2859——基础dp-最大对称子矩阵
Think: 1知识点:基础dp-最大对称子矩阵 2题意:给定一个矩阵,寻找一个最大对称子矩阵,当前题目最大对称子矩阵定义可理解为沿当前子矩阵的次对角线元素对称 3思考:确定动态转移方程的过程可以抽象成根据题意条件将一个大问题不断缩小一直缩小到可以解决的小问题vjudge题目链接以下为Accepted代码#include <cstdio>#include <cstring>#include原创 2017-08-09 19:43:38 · 671 阅读 · 0 评论 -
J - FatMouse's Speed HDU - 1160——基础dp
Think: 1知识点:排序+最长上升子串+记录路径 2题意:寻找一个最长子串,使得重量w严格递增,速度c严格递减 3反思:注意排序后的路径记录和通过递归回溯输出路径vjudge题目链接以下为Accepted代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;struct Node{原创 2017-08-09 14:54:27 · 435 阅读 · 0 评论 -
I - 最少拦截系统 HDU - 1257——dp/数组模拟+二分
I - 最少拦截系统 HDU - 1257——dp/数组模拟+二分 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹. 怎么办呢?多搞几套系统呗!你说说倒蛮容易,原创 2017-08-09 11:28:02 · 362 阅读 · 0 评论 -
G - 免费馅饼 HDU - 1176 ——dp-金字塔
Think: 1知识点:dp 2题意分析:建立二维时间位置数组,然后从最后掉落时间开始,金字塔向上更新 3反思:注意不要数组越界,注意不同题目for循环更新方向不要习惯性i++vjudge题目链接以下为Accepted代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int Max(in原创 2017-08-09 09:52:09 · 380 阅读 · 0 评论 -
多重背包—C - HDU 2191 - 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活
think: 1 今天第一次在Virtual judge上面做题,虽然之前假期的时候申请了账号,但一直没有在Virtual judge上做题,今天在上面AC了第一道题目,希望自己再接再励,加油。 2 回归题目,作为练习多重背包的很好的题目,我的思路是将其转化为有限个01背包,只是关于动态转移方程中的一维方程自己需要算一下范围,这个题目为:20*100 = 2000,因此自己开的数组范围都为200原创 2017-02-13 15:46:56 · 360 阅读 · 0 评论 -
小P寻宝记——好基友一起走(完全背包)
sdut原题链接小P寻宝记——好基友一起走 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 话说,上次小P到伊利哇呀国旅行得到了一批宝藏。他是相当开心啊,回来就告诉了他的好基友小鑫,于是他们又结伴去伊利哇呀国寻宝。 这次小P的寻宝之路可没有那么的轻松,他们走到了一个森林,小鑫一不小心被触发了机关,被困在了一个大笼子里面,笼原创 2017-02-10 16:01:58 · 418 阅读 · 0 评论 -
小P的故事——神奇的发票报销(01背包)
sdut原题链接小P的故事——神奇的发票报销 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 为响应党的号召,小P所在的大学现在严格规范报销制度,禁止铺张浪费。特作如下规定:允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600元。原创 2017-02-10 15:55:48 · 1145 阅读 · 0 评论 -
小P的故事——神奇的Dota(初级完全背包)
sdut原题代码小P的故事——神奇的Dota Time Limit: 1000MS Memory Limit: 65536KBProblem Description 小P非常喜欢玩dota,不分昼夜的玩 ,结果他连做梦也都是里面的画面,一天晚上小P刚躺下就做了一个神奇的梦。。。 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给原创 2017-02-10 11:50:26 · 405 阅读 · 0 评论 -
【map/桶记录/基础dp】Ignatius and the Princess IV HDU - 1029
Think: 1知识点:map/桶记录/基础dp 2题意:输入n个数,输出出现次数大于等于(n+1)/2的那个数vjudge题目链接以下为Accepted代码——map-421ms#include <cstdio>#include <cstring>#include <algorithm>#include <map>using namespace std;int main(){ i原创 2017-08-07 10:08:56 · 365 阅读 · 0 评论