HDU 2159 FATE【二维完全背包】
题意:xhd玩游戏,还需要n个经验值升级,还留有m的忍耐度,但是他最多打s只怪,给出k个怪的经验值a[i],以及消耗的忍耐度b[i],问xhd能不能升级--
因为有两个限定,忍耐度,和最多打s只怪(即没打一只怪,要消耗1),又因为每只怪有无数只,所以是二维的完全背包--
后来写了发现不对(过了样例一直WA)--又翻了题解发现是循环跳出没有弄对,要dp[i][j]>=n的同时且j==s(因为要刚好打s只怪--)
发现把每只怪的数量当1也能过(自己就是这样想的---55555)
每只怪只有一只水过版本--
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 1005
using namespace std;
int dp[maxn][maxn],a[maxn],b[maxn];
int main()
{
int i,j,k,n,m,s,t;
while(scanf("%d %d %d %d",&n,&m,&k,&s)!=EOF&&n&&m&&k&&s)
{
for(i=;i<=k;i++) scanf("%d %d",&a[i],&b[i]);
memset(dp,,sizeof(dp));
for(i=;i<=m;i++)
{
for(j=;j<=s;j++)
{
for(t=;t<=k;t++)
if(i>=b[t]&&j>=)
dp[i][j]=max(dp[i][j],dp[i-b[t]][j-]+a[t]);
}
if(dp[i][s]>=n) break;
}
if(i>m) printf("-1\n");
else
printf("%d\n",m-i);
}
}
标准无数只怪版本--
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 1005
using namespace std;
int dp[maxn][maxn],a[maxn],b[maxn];
int main()
{
int i,j,k,n,m,s,t;
while(scanf("%d %d %d %d",&n,&m,&k,&s)!=EOF&&n&&m&&k&&s)
{
for(i=;i<=k;i++) scanf("%d %d",&a[i],&b[i]);
memset(dp,,sizeof(dp));
for(i=;i<=m;i++)
{
for(j=;j<=s;j++)
{
for(t=;t<=k;t++)
{
int h=;
while(i>=h*b[t]&&j>=h)
{
dp[i][j]=max(dp[i][j],dp[i-h*b[t]][j-h]+h*a[t]);
h++;
}
}
}
if(dp[i][s]>=n) break;
}
if(i>m) printf("-1\n");
else
printf("%d\n",m-i);
}
}
HDU 2159 FATE【二维完全背包】的更多相关文章
- hdu 2159 FATE (二维完全背包)
Problem Description 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务.久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级.现 ...
- HDU 2159 FATE (二维背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159 解题报告:这题实际上是一个二维的背包问题,也可以由01背包扩展而来,01背包用一维数组,可想而知 ...
- HDU 2159 FATE (二维背包)
题意:中文题. 析:dp[i][j] 已经杀了 i 个怪兽,已经用了 j 体积,所能获得的最大经验值,这个和一维的差不多,只是加一维而已. 代码如下: #pragma comment(linker, ...
- HDU2159:FATE(二维完全背包)
Problem Description 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务.久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级.现 ...
- [hdu2159]FATE二维多重背包(背包九讲练习)
解题关键:二维约束条件,只需加一维状态即可. 转移方程:$f[j][k] = \max (f[j][k],f[j - w[i]][k - 1] + v[i])$ #include<bits/st ...
- 杭电 2159 fate(二维背包费用问题)
FATE Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- HDU 2159 FATE(二维全然背包)
中文题目就不用解释了 就是裸的二维全然背包 d[i][j]表示消耗i忍耐杀j个怪最多可获得的经验 然后就用全然背包来做了 二维背包背包只是是多了一重循环 <span style=&quo ...
- HDOJ(HDU).2159 FATE (DP 带个数限制的完全背包)
HDOJ(HDU).2159 FATE (DP 带个数限制的完全背包) 题意分析 与普通的完全背包大同小异,区别就在于多了一个个数限制,那么在普通的完全背包的基础上,增加一维,表示个数.同时for循环 ...
- hdu 2159 FATE
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159 思路:二维完全背包,状态转移方程为: f[j][l]=max(f[j][l],f[j-b[i]] ...
- HDU2159 二维完全背包
FATE Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
随机推荐
- 正确使用HTML title属性
如果你想对使用手机,平板电脑和辅助技术的用户隐藏某些内容,而只对键盘用户显示,那么请使用title属性. 细节 HTML的title属性本身有问题.之所以有问题是因为它在一些重要的方面表现的不够好,尽 ...
- poj 2749
Building roads Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6091 Accepted: 2046 De ...
- Difference Between Vector and Deque in C++
1) Dequeue can quickly insert or delete both at the front or the end. However, vector can only quick ...
- UVA 10497 - Sweet Child Makes Trouble 高精度DP
Children are always sweet but they can sometimes make you feel bitter. In this problem, you will see ...
- ANDROID STUDIO, GRADLE AND NDK INTEGRATION
Originally posted on:http://ph0b.com/android-studio-gradle-and-ndk-integration/ With the recent chan ...
- ffmpeg转码时对编码率和固定码率的处理
http://www.rosoo.net/a/201107/14663.html 一般fps在代码里这样表示 Fps = den/num 如果den = 15,num=1,则fps = 15. 如果帧 ...
- iOS开发--git
http://blog.chinaunix.net/uid-26495963-id-3474178.html 相关知识 gnu interactive tools 一句话概括git: Git is a ...
- (转载)怎么写tab?
演示地址:http://www.adanghome.com/js_demo/3/ =========================================================== ...
- 在编辑框(CEdit)控件上追加内容
版权声明:本文为博主原创文章,未经博主允许不得转载. // MFC 版本 CEdit* pEdit = GetDlgItem(IDC_EDIT1); ASSERT(pEdit && p ...
- 复习一下,? extends T 和 ? super T
前话 最近学一些杂七杂八的东西,都把基础给忘了. 比如Java泛型中的 ? extends T和 ? super T 吧. 刚看开源项目的时候遇到它,表情如下: 源码分析 直接用源码来讲解吧 pack ...