![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM-动态规划
czhou0
这个作者很懒,什么都没留下…
展开
-
HDU 1224 Free DIY Tour (DP again!)
有N个城市,从某城市出发到到终点城市,每次经过一个城市都会得一定的分数,但不是每个城市间都是连通的,图中无环路,并且单向。问怎样走得分最高。DFS应该也可以做,不过看起来用DP思路更简单些,依次对每个城市求最大值,只要把该城市的分数加上能够到达该城市的其他城市的分数相加,并记录路线即可。#include#includeusing namespace std;struct {原创 2012-07-08 00:17:27 · 232 阅读 · 0 评论 -
HDU 4221 Greedy?(DP)
题目是这样的:有N个任务要完成,每个任务都有一个时限,和完成这个任务所需要的时间。如果完成时的时间超过了时限,就要惩罚跟超过的时间相同的分数。若使罚分中的最大值最小,这个最小值是多少?做完才发现有点像DP。。先把这些任务按 deadline 排序,然后用方程以此求出即可。f [ i ] = max (f [ i - 1], cost[1 to i] - deadline [ i ] )原创 2012-07-04 22:45:20 · 382 阅读 · 0 评论 -
POJ3781-3786(Unknown Summer Training ID 8911 0x03 on hust oj)(枚举、贪心、动态规划)
一共9道题,完成前6道。A: 问题:输入10个数,输出10个数中第3大的数。 STL sort函数水过。B: 问题:输入n个数字,将这些数字分成若干组,使每组数字的和相同,只有连续的数字才能被分在同一组。给出一种分法使每组数字的和最小,输出该最小值。 思路:枚举 + 贪心。至多循环n次。第i次循环: 将第i个数加入第一组,之后判断后续的数是否能按第一组的和分原创 2012-07-04 22:14:28 · 416 阅读 · 0 评论 -
HDU 1159 Common Subsequence(还是DP)
给出两个字符串,求出他们最大的 Common Subsequence。所谓字符串A的 subsequence,就是A所含的字符的一部分或者全部组成的字符串,并且字符的顺序和A中出现的顺序相同。用f [ i ][ j ]表示处理到字符串A的第 i 位 和 字符串B第 j 位时的最大值。f [ i ][ j ] = f[ i - 1 ][ j - 1 ] + 1 (A[ i ] == B[原创 2012-07-04 23:17:42 · 243 阅读 · 0 评论 -
HDU 2602 Bone Collector(01背包,DP)
典型的01背包。第一次做~用f [ i ][ j ] 来表示当处理到第 i 项物品,并剩 j 容量时的最大价值。那么 f [ i ][ j ] = max( f [ i - 1 ][ j ], f[ i - 1 ][ j - volume[ i ] ] + value[ i ])。#include#include#includeusing namespace std;in原创 2012-07-04 23:02:25 · 162 阅读 · 0 评论 -
HDU 1231 最大连续子序列(DP)
给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20。 要求得到最大和,并输出该子序列的第一个和最后一个元素。思路是DP,用f [ i ]表示以第 i 个数字为结尾的子序列的原创 2012-07-04 22:52:47 · 679 阅读 · 0 评论