FATE
题目大意:xhd要杀怪升级,他有一个忍耐值。每只怪都有一个经验值和需要
消耗的忍耐值。杀掉怪得到相应经验值,消耗掉相应忍耐值。 xhd最多能杀S
只怪,升级共需要N的经验值。若他的忍耐度掉到0,则他不会再玩游戏了。
输出他升完这一级,所能剩下最大的忍耐值。如果升不了级,则输出-1。
思路:背包中要存的东西肯定是经验,但是背包的容量不单是怪物数,还有忍
耐度。这样,把怪物数和忍耐度作为背包的二维容量。用两个循环,得到S个
怪,M容量值内得到的最高经验值。
最后遍历找出经验值高于升级经验值的最小消耗的...
分类:
其他好文 时间:
2014-10-23 16:25:00
阅读次数:
290
和普通的完全背包不同的地方时多了物品选取的限制,因此需要增加一维dp[i][j][k]表示前i种物品,选取j个放入容量为k的背包中所能得到的最大价值这里和一维的背包一样可以利用滚动数组省略一维即dp[i][j] 表示前选取i个放入容量为j的背包所能得到的最大价值dp[i,j] = max(dp[i,...
分类:
其他好文 时间:
2014-09-19 22:22:06
阅读次数:
236
题目链接:FATE
状态转移方程:
dp[ren][num] =max(dp[ren-耐久值][num-1]+ 经验值,dp[ren][num])
dp表示:当前忍耐度ren下杀敌数为num的经验值
枚举分别枚举 所有怪物种类、耐久度、杀怪数
最后在从小到达枚举消耗的耐久度即可
#include
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2014-07-30 17:27:34
阅读次数:
176
/*
————————————————————————————————————————————————————————————————————————————————————————————————
author : Grant Yuan
time : 2014.7.19
aldorithm: 二维背包+完全背包
...
分类:
其他好文 时间:
2014-07-19 23:12:29
阅读次数:
296
感觉用背包去想反而麻烦。。就是一个递推
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
#define ll __int64
using namespace std;
int n,v,k,s,dp[110][110],w[110]...
分类:
其他好文 时间:
2014-06-28 07:30:04
阅读次数:
208
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
#define ll __int64
using namespace std;
int n,v,k,s,dp[110][110],w[110],c[110];
int main()
{...
分类:
其他好文 时间:
2014-06-27 08:15:44
阅读次数:
171