背包
文章平均质量分 87
九野的博客
这个作者很懒,什么都没留下…
展开
-
ZOJ 3623 Battle Ships
题意:n m(武器种类n,塔m血) 目标,计算推到塔最短时间下面n行a b表示建该武器需要a秒,建成后每秒造成m血 果果的完全背包 #include#include#include#include#include#include#include#define N 40#define M 400using namespace std;i原创 2013-08-13 20:21:44 · 1458 阅读 · 0 评论 -
HDU 3033 分组背包
题意:给定n个物品 m元,k种商品下面n行 tpye w v 表示物品的牌子,价格,价值(每个物品只有1件)问:每个牌子至少买一件能获得的最大价值是多少思路:分组背包#include #include #include #include #include using namespace std;#define ll intll n, m, k;l原创 2014-05-04 13:22:53 · 1335 阅读 · 0 评论 -
2013 长沙邀请赛 ADEGH 题解
HDU 4565 So Easy!类似fib的构造设Fn = x + y*sqrt(b)啪啦啪啦#include #include #include #include #include using namespace std;typedef vector vec;typedef vector mat;typedef long long ll;ll a, b,原创 2014-07-10 23:29:52 · 1604 阅读 · 0 评论 -
Codeforces 364B 背包+贪心
题目链接:http://codeforces.com/problemset/problem/364/B给定n个物品(每个物品只有1件,d值)每次可以用手头的物品(设价值为val)换取不在手头的物品(任意件数,总价值要问能换到的最大价值及在此价值下的最小次数。思路:先背包一下跑出所有可能换到的价值,然后贪心一直增加价值直到不能增加。#include#include#inc原创 2014-06-20 23:29:47 · 1626 阅读 · 0 评论 -
ZOJ 3812 We Need Medicine 01背包+位优化
题目链接:点击打开链接#include #include #include #include #include typedef unsigned long long ll;using namespace std;const int N = 400 + 1;const int M = 200000 + 1;int t[N], w[N], g[51][M], ans[N], de原创 2014-09-10 22:55:03 · 1734 阅读 · 0 评论 -
HDU 4341 Gold miner 分组背包变形
题意:挖金矿,人在(0,0)点n个金子 游戏时间为T下面n行(x, y) cost val且若人 和 多块金子共线时,只能先取最近的金子,依次取,就是和游戏一样的。且所有点只在1 2象限思路:我们先把所有共线的点分组对于每组的物品,我们都可以认为取这个物品的花费就是前面所有物品的花费总和,而价值就是前面所有物品的价值总和。这样就能消除每组物品的先取后取的影响原创 2014-10-10 13:42:37 · 1207 阅读 · 0 评论 -
CodeForces 148E Porcelain dp+背包(水
题目链接:点击打开链接题意:给定一个n层书架,一共取m本书。下面n行给出每层书的价值。每次可以取任意一层的最左端或最右端的一本书。问能获得的最大价值。思路:1、显然是先求出对于每层任取任意本书能获得的最大价值。2、然后背包一下。1:对于一层书任意j本,那么一定是从左端取k本,右端取 j-k本,求个前缀和然后枚举 j和k即可。每层n^2的dp2:分组背原创 2015-03-05 19:59:32 · 1181 阅读 · 0 评论 -
CSU 1580 Outing 强连通+背包
题目链接:点击打开链接给定n个人,车的载人量m下面给出a[i]数组想要邀请i上车,必须先邀请a[i]上车问:最多能邀请到多少人。观察得到,这是一个有向图,按照i->a[i]建边后得到的图是类似于树形,但链的尾部是一个简单环。如下:5 22 3 4 1 4则我们必须先同时邀请1234,才能邀请5.所以建立一个反图(即边的方向相反),然后强连通缩点一下,这样就得到了一原创 2015-04-30 13:59:54 · 1141 阅读 · 1 评论