梦幻的蔷薇色

迁移至新博客:hiyongheng.cn-------我也向往蔷薇色的生活啊,可我是灰色的。

poj 2392 Space Elevator(多重背包)

先排序,再背包。#include <stdio.h> #include <string.h> #include <algorithm> using namespace std;const int MAXN = 500; int dp[MAXN*100]; str...

2017-08-15 22:17:02

阅读数 112

评论数 0

hdu 1171 Big Event in HDU(多重背包可行性)

总价值的一半为背包容量,可以多重背包,可以转成完全背包#include <bits/stdc++.h> using namespace std;const int MAXN = 10000; int num[MAXN]; int dp[MAXN*100]; int v[MAXN]; i...

2017-08-15 22:11:28

阅读数 122

评论数 0

poj 1787 Charlie's Change(完全背包 或 多重背包 记录路径)

多重背包,但是可以用完全背包来做。 参考:http://www.cnblogs.com/kuangbin/archive/2012/09/20/2695803.html#include <stdio.h> #include <string.h> #include <...

2017-08-14 16:09:22

阅读数 205

评论数 0

poj 3181 Dollar Dayz(完全背包)

要用大数。。#include <stdio.h> #include <string.h> #define max(a,b) (a)>(b)?(a):(b)struct BigInt { const static int mod = 10000; con...

2017-08-13 23:46:08

阅读数 111

评论数 0

UVA 147 Dollars(完全背包)

和uva647基本一样,注意精度#include <bits/stdc++.h> using namespace std;const int MAXN = 33333; int w[11] = {5,10,20,50,100,200,500,1000,2000,5000,10000};...

2017-08-13 23:20:15

阅读数 102

评论数 0

UVA 674 Coin Change(完全背包)

基础题#include <bits/stdc++.h> using namespace std;const int MAXN = 10000; int dp[MAXN]; int w[5] = {1,5,10,25,50}; int W;void solve() { for(i...

2017-08-13 22:56:53

阅读数 137

评论数 0

poj 1252 Euro Efficiency(完全背包)

参考:http://blog.csdn.net/a601025382s/article/details/9376637 第一次碰到这种,先正着背个包,再反过来背包,正着是直接用钱组合出来的,反过来的是计算找零的#include <stdio.h> #include <strin...

2017-08-12 19:59:54

阅读数 140

评论数 0

poj 1384 Piggy-Bank(完全背包)

求刚好装满的最小价值#include <stdio.h> #include <string.h> #define min(a,b) (a)>(b)?(b):(a) const int INF = 0x3f3f3f3f; int dp[10010]; int w[100...

2017-08-12 12:32:39

阅读数 111

评论数 0

poj 2063 Investment(完全背包)

多次完全背包 要对背包的容量进行压缩,不然超内存 因为债券的价格都是1000的倍数,就除1000来压缩#include <stdio.h> #include <string.h> #define max(a,b) (a)>(b)?(a):(b)int w[15];...

2017-08-12 10:59:24

阅读数 154

评论数 0

hdu 2955 Robberies(01背包)

这题的最难之处,就是看不懂题目啥意思。 看懂就好说了,总钱数做背包容量,题目意思看的别人题解。。。#include <bits/stdc++.h> using namespace std;double p[110]; double dp[10010]; int money[110];...

2017-08-11 09:53:34

阅读数 109

评论数 0

UVA 562 Dividing coins(01背包)

总钱数的一半做背包容量#include <bits/stdc++.h> using namespace std;int n,sum,W,res; int coins[110]; int dp[50010];void solve() { memset(dp,0,sizeof(dp...

2017-08-11 09:51:19

阅读数 118

评论数 0

hdu 2546 饭卡(01背包)

开始想怎么让他剩下至少5块,然后再花呢,先把那5块拿出来花掉不就行了 先拿出5块前来买掉最贵的东西,剩下的钱当背包 要考虑m<5的情况,在这里wa了一发#include <bits/stdc++.h> using namespace std;const int MAXN = ...

2017-08-11 09:49:26

阅读数 101

评论数 0

poj 1976 A Mini Locomotive(01背包)

给你n个数,表示n个车厢拉的人数,给你三个小火车头,每个火车头可以拉连续的k节车厢,问这三个小火车头最多可以拉走多少人 dp[i][j]表示前i个火车头从前j节车厢最多可以拉多少人 dp[i][j]=max(dp[i-1][j-k]+preSum[j]-preSum[j-k],dp[i][j-...

2017-08-11 00:24:36

阅读数 143

评论数 0

poj 1745 Divisibility(01背包)

我看的那背包专辑把这个放01背包里了,感觉并不像啊。 (a+b)%mod=(a%mod+b%mod)%mod dp[i][j]==true表示表示前i个数字经过加加减减的操作后,%K=j,dp[i][j]==false,那就是%K!=j。然后对下一个数字num计算(j+num)%K和(j-nu...

2017-08-10 23:51:08

阅读数 124

评论数 0

poj 3211 Washing Clothes(分组01背包)

夫妻俩洗衣服,他俩一块洗,必须要一块先洗完同一种颜色的衣服,才能洗另一种颜色的衣服。 按照衣服颜色分类,对于每种颜色的衣服进行01背包,最后加和。 对于每种颜色,背包容量就是洗完当前颜色所有衣服花费总时间的一半。因为要求时间最短,所以夫妻俩洗衣服的时间相差越小越好,所以是一半喽,然后算出这一半...

2017-08-10 23:33:00

阅读数 137

评论数 0

poj 3628 Bookshelf 2(01背包)

有n头牛,摞在一块,让他们的高度超过B,从超过B的高度中,找到最小的那个,求他和B的差。 以所有牛摞一块的高度为背包#include <stdio.h> #define max(a,b) a>b?a:b #define min(a,b) a>b?b:a const int...

2017-08-10 23:27:08

阅读数 89

评论数 0

poj 3624 Charm Bracelet(01背包)

裸的01背包#include <stdio.h> #define max(a,b) a > b ? a:b const int MAXN = 5010; int v[MAXN]; int w[MAXN]; int dp[MAXN*3]; int N,W;void solve() ...

2017-08-10 23:23:29

阅读数 139

评论数 0

51nod 1007 正整数分组(01背包)

题目分类是动态规划,初看题目我只想到了搜索。怕超时,没写。看了下讨论版,才知道是01背包。 摘自讨论版:TIPS: 和最大为10000,两组最小的差值应该逼进sum / 2,所以当确定了sum/2 即可对N[i] < sum / 2的进行dp。之后再计算差值即可#include <c...

2017-05-09 18:00:55

阅读数 167

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭