HDUOJ----2159 FATE
FATE
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 6553 Accepted Submission(s): 3016
1 1
10 10 1 9
1 1
9 10 2 10
1 1
2 2
-1
1
改用一维费用背包求解./.
将背包设置为结构体来进行求解..
代码:oms
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
const int maxn=;
struct patience
{
int a,b;
};
patience sta[maxn];
struct guawu
{
int num; //数目
int val; //经验值
};
guawu dp[maxn];
int main()
{
int n,m,k,s,i,g;
while(scanf("%d%d%d%d",&n,&m,&k,&s)!=EOF)
{
for(i=;i<k;i++)
scanf("%d%d",&sta[i].a,&sta[i].b);
memset(dp,,sizeof(dp));
for(i=;i<k;i++) /*种类*/
{
for(g=sta[i].b;g<=m;g++) /*忍耐度*/
{
if(dp[g].val<=dp[g-sta[i].b].val+sta[i].a)
{
if(dp[g].val<dp[g-sta[i].b].val+sta[i].a||(dp[g].val==dp[g-sta[i].b].val+sta[i].a&&dp[g].num>dp[g-sta[i].b].num+))
dp[g].num=dp[g-sta[i].b].num+; /*这里标记最大的容纳度*/
dp[g].val=dp[g-sta[i].b].val+sta[i].a;
}
}
}
int minc=;
int pos=m;
for(i=m;i>=;i--)
{
if(dp[i].val>=n&&minc>=dp[i].val)
{
minc=dp[i].val;
pos=i;
}
}
if(dp[pos].num>s||dp[pos].val<n)
printf("-1\n");
else
printf("%d\n",m-pos);
}
return ;
}
第二种方法.....二维费用包....
代码:31ms
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
const int maxn=;
struct master
{
int a; //获得的经验
int b; //忍耐度
};
master sta[maxn];
int dp[maxn][maxn];
int main()
{
int n,m,k,s;
int i,j,v;
while(scanf("%d%d%d%d",&n,&m,&k,&s)!=EOF)
{
for(i=;i<k;i++)
scanf("%d%d",&sta[i].a,&sta[i].b);
memset(dp,,sizeof(dp));
for(i=;i<k;i++)
{
for(j=sta[i].b;j<=m;j++)
{
for(v=;v<=s;v++)
{
if(dp[j][v]<dp[j-sta[i].b][v-]+sta[i].a)
dp[j][v]=dp[j-sta[i].b][v-]+sta[i].a;
}
}
}
for(i=;i<=m;i++)
{
for(j=;j<=s;j++)
{
if(dp[i][j]>=n) goto loop;
}
}
loop:
printf("%d\n",m-i);
}
return ;
}
HDUOJ----2159 FATE的更多相关文章
- HDU 2159 FATE 完全背包
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2159 FATE Time Limit: 2000/1000 MS (Java/Others)Memo ...
- HDOJ(HDU).2159 FATE (DP 带个数限制的完全背包)
HDOJ(HDU).2159 FATE (DP 带个数限制的完全背包) 题意分析 与普通的完全背包大同小异,区别就在于多了一个个数限制,那么在普通的完全背包的基础上,增加一维,表示个数.同时for循环 ...
- HDU 2159 FATE(二维费用背包)
FATE Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU 2159 FATE (二维完全背包
FATE http://acm.hdu.edu.cn/showproblem.php?pid=2159 Problem Description 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备 ...
- hdu 2159 FATE
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159 思路:二维完全背包,状态转移方程为: f[j][l]=max(f[j][l],f[j-b[i]] ...
- HDU 2159 FATE(全然背包+二维费用背包)
FATE Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU 2159 FATE (完全背包+有限尚需时日)()双费背包
FATE Problem Description 近期xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务.久而久之xhd開始对杀怪产生的厌恶感,但又不得不通过杀怪来升 ...
- hdu 2159 FATE (二维完全背包)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159 思路: dp[j][k] 代表消耗耐久度j,干掉k个敌人获得的经验值. 状态转移方程为: dp[j] ...
- hdu 2159 FATE (二维完全背包)
Problem Description 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务.久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级.现 ...
- HDU 2159 FATE(有选择物品总个数限制的完全背包,经典!!)
FATE Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
随机推荐
- [Android] Anreoid repo 切换分支
reference : http://blog.csdn.net/lihui130135/article/details/40858885 如果已经有android仓库但是还不是最新的,想切换到And ...
- @Java类加载器及双亲委派模型
类与类加载器 虚拟机设计团队把类加载阶段的"通过一个类的全限定名来获取此类的二进制字节流"这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类.实现这个 ...
- Informatica 常用组件Lookup缓存之五 使用动态查找高速缓存
对于关系查找,当目标表也是查找表时,可能要配置转换以使用动态高速缓存.PowerCenter 将在处理第一个查找请求时创建高速缓存.它将根据查找条件为传递给转换的每行查询高速缓存.当您使用动态高速缓存 ...
- uva 10160 Servicing Stations(DFS+剪枝)
Servicing stations A company offers personal computers for sale in N towns (3 <= N <= 35). The ...
- Git的简单介绍
每次看到别人写Git的文章,同学中也有用Git感觉很高大上的感觉,工作中用的是SVN,周末倒腾了一下Git,Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git 与 ...
- 几行简单代码实现DIV层上显示Tooltip效果
最近在做一个项目,要在鼠标移到层上后显示出tip提示,网上找了半天,都很麻烦,就自己修改了一个,记录在下面 测试在IE 7.8.9及 chrome 上没问题. <HTML> <HEA ...
- 关于html5获取用户地理位置
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...
- 使用Kindeditor上传图片
给客户制作的项目中需要添加富文本,从网上看了一下很多人推荐kindeditor这个编辑器,用了之后也感觉不错,有一些问题的就是上传图片的时候遇到了一些问题,在这里记录一下,也方便以后查看. 首先在官网 ...
- Spark RDD关联操作小结
前言 Spark的rdd之间的关系需要通过一些特定的操作来实现, 操作比较多也,特别是一堆JOIN也挺容易让人产生混乱的. 因此做了下小结梳理一下. 准备数据 var rdd1 = sc.makeRD ...
- cognos report上钻下钻报表处理方法(2)
在此之前已经说过了在报表本身单个维度上面的上钻与下钻,本次说的是传递参数追溯到其他报表.比如从部门追溯到部门每一位员工的数据分析, 如图:报表1 点击信托业务一总部跳转到下面的报表2,显示每一位执行经 ...