=====动态规划=====
文章平均质量分 52
0x3f3f3f3f
这个作者很懒,什么都没留下…
展开
-
HDU 2089 —— 不要62 [入门题]
http://acm.hdu.edu.cn/showproblem.php?pid=2089#include#includeint n, m;int dp[15][15];int num[15];void init(){ dp[0][0] = 1; for(int i = 1;i<=7;i++) { for(int j = 0;j<=9;j++) {原创 2015-12-12 13:03:44 · 341 阅读 · 0 评论 -
HDU 1176 —— 免费馅饼
原题:http://acm.hdu.edu.cn/showproblem.php?pid=1176dp[i][j]表示位置i在j时刻能拿到的最多馅饼,从后往前推(因为我们知道起始位置),最后求得答案就是dp[5][0];状态转移: i = 0 dp[0][j] += max(dp[0][j+1], dp[1][j+1]); i = 10 dp[1原创 2016-02-20 22:27:02 · 367 阅读 · 0 评论 -
HDU 1087 —— Super Jumping! Jumping! Jumping!
原题:http://acm.hdu.edu.cn/showproblem.php?pid=1087题意:求最大递增子序列和;LIS裸题,只要加一个求和数组即可;#include#includeusing namespace std;const int maxn = 1100;int a[maxn];int dp[maxn], val[maxn];int n;in原创 2016-02-21 00:05:43 · 367 阅读 · 0 评论 -
HDU 1864 —— 最大报销额 01背包
http://acm.hdu.edu.cn/showproblem.php?pid=1864注意点:1、将小数*100(均只有两位小数);2、数组大小不要开错;3、单项物品指的是A项、B项、C项,所以是每张发票所有的A钱数不能超过600;4、注意输入;#include#include#includeusing namespace std;const int maxv原创 2015-12-15 10:19:02 · 399 阅读 · 0 评论 -
HDU 2546 —— 饭卡 01背包入门
http://acm.hdu.edu.cn/showproblem.php?pid=2546注意点:1、若一开始钱就少于5元,就直接输出钱数,因为什么都买不了;2、将余额先减去5元,这5元我们用来买最贵的;#include#include#includeusing namespace std;const int maxn = 1100;int n, m;int dp[m原创 2015-12-14 14:04:58 · 333 阅读 · 0 评论 -
HDU 2602 —— Bone Collector 裸01背包
http://acm.hdu.edu.cn/showproblem.php?pid=2602#include#include#includeusing namespace std;int cas, n, v;int dp[1100];struct node{ int val, vol;}a[1100];int main(){ scanf("%d",原创 2015-12-14 14:02:58 · 338 阅读 · 0 评论 -
HDU 1171 —— Big Event in HDU 01背包入门
http://acm.hdu.edu.cn/showproblem.php?pid=1171题意:有n种数,下面n行给出每种数的大小以及个数,将所有的数字分成两堆,且两堆的差值尽可能的小;注意点:1、容量是sum/2;2、n#include#include#includeusing namespace std;const int maxn = 25000原创 2015-12-14 17:09:32 · 395 阅读 · 0 评论 -
POJ 3211 —— Washing Clothes 01背包
http://poj.org/problem?id=3211题意:n种颜色,m件衣服;下面m行给出每件衣服需要的时间和衣服的颜色;两个人只能同时洗颜色相同的衣服;问洗完所有的衣服至少需要多少时间;注意点:1、按颜色分组计算;2、对于某种颜色的衣服,每次选取两个人中用时较长的,在这些时间中再选取最小的;#include#include#include#inc原创 2015-12-14 21:58:00 · 433 阅读 · 0 评论 -
HDU 2955 —— Robberies 01背包
http://acm.hdu.edu.cn/showproblem.php?pid=2955题意:给出概率p和n;下面n行表示每个银行的钱数和被抓的概率;要求被抓概率不得超过p;问最多可以偷多少钱;注意点:1、从反面思考,不被抓的概率;2、将所有银行的钱数看作是总容量,概率为价值;3、如果一个银行都偷不了输出是0;#include#include#inclu原创 2015-12-14 20:08:28 · 347 阅读 · 0 评论 -
HDU 4284 —— Travel 状压dp|DFS+Floyd
http://acm.hdu.edu.cn/showproblem.php?pid=4284题意:n个城市,m条边,以及初始的钱数;下面m行给出每条边的u、v以及花费;然后是h个城市,每行给出城市编号、能赚的钱、买证的钱;PP要去这h个城市打工并且返回1城市(起点是1),要在该城市打工就得先买证,问PP能否成功;DFS+Floyd#include#includ原创 2015-12-13 16:27:11 · 471 阅读 · 0 评论 -
UESTC 250 —— windy数 [入门题]
http://acm.uestc.edu.cn/#/problem/show/250#include#include#include#include#includeusing namespace std;int a, b;int dp[11][11];int digit[11];void init(){ memset(dp, 0, sizeof dp); f原创 2015-12-12 13:07:57 · 499 阅读 · 0 评论 -
HDU 1260 —— Tickets
原题:http://acm.hdu.edu.cn/showproblem.php?pid=1260题意:有n个人要买票,可以单个人买,也可以和前面一个人一起买,给出每个人买票的时间(n个数)以及和前一个人一起买票的时间(n-1个数);问最少买票时间;dp[i]表示i个人买票最少时间;状态转移:dp[i] = min(dp[i-1]+time[i], dp[i-2]+w[i]);dp原创 2016-02-21 14:00:23 · 340 阅读 · 0 评论