博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU2159 研发费用背包
阅读量:6902 次
发布时间:2019-06-27

本文共 1379 字,大约阅读时间需要 4 分钟。

主题链接:

状态转移方程:

dp[ren][num] =max(dp[ren-耐久值][num-1]+ 经验值,dp[ren][num])

dp表示:当前忍耐度ren下杀敌数为num的经验值

枚举分别枚举 全部怪物种类、耐久度、杀怪数

最后在从小到达枚举消耗的耐久度就可以

#include 
#include
#include
#include
#include
const int INF = 1e7;using namespace std;int dp[105][105],cost[600][2];int max(int x,int y){ if(x > y) return x; else return y;}int min(int x,int y){ if(x > y) return y; else return x;}int main(){ int n,m,k,s; while(~scanf("%d%d%d%d",&n,&m,&k,&s)) { for(int i = 1;i<=k;i++) { scanf("%d%d",&cost[i][0],&cost[i][1]); } memset(dp,0,sizeof(dp)); int i,ren,num,ans = -1; for( i = 1;i<=k;i++) { for( ren = cost[i][1];ren<=m;ren++) { for( num = 1;num<=s;num++) { if(dp[ren][num] < dp[ren-cost[i][1]][num-1]+ cost[i][0]) dp[ren][num] = dp[ren-cost[i][1]][num-1] + cost[i][0]; } } } for(int i = 1;i<=m;i++) { if(dp[i][s] >=n) { ans = m - i; printf("%d\n",ans); break; } } if(ans ==-1) printf("%d\n",ans); } return 0;}

版权声明:本文博主原创文章,博客,未经同意不得转载。

你可能感兴趣的文章
redis使用管道pipeline提升批量操作性能(php演示)
查看>>
python: file_handling 解决工作中出现的文件处理需求
查看>>
HTML5 拖放(Drag 和 Drop)功能开发——浅谈dataTransfer对象
查看>>
灰度图像亮度对比度调整的简单代码
查看>>
shell测试题上机实验
查看>>
[转]二维数组和二级指针的传递问题
查看>>
nginx+fastcgi+c/c++搭建高性能Web框架
查看>>
[转载]安装archlinux 以后没有 ifconfig,route ,nslo
查看>>
人见人爱A^B
查看>>
zoj 3795 Grouping tarjan缩点 + DGA上的最长路
查看>>
浏览器内核
查看>>
zabbix-server安装部署配置
查看>>
终于解决 xUnit.net 测试中无法输出到控制台的问题
查看>>
【素数筛】分解质因数
查看>>
【ADT】队列的基本C语言实现
查看>>
NYOJ-1057 寻找最大数(三)(贪心)
查看>>
qt信号和槽
查看>>
第二章
查看>>
【Beta阶段】第六次Scrum Meeting
查看>>
nginx.conf配置文件详解
查看>>