博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU - 2159 FATE(二维dp之01背包问题)
阅读量:4687 次
发布时间:2019-06-09

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

题目: 

 

思路: 二维dp,完全背包,状态转移方程dp[i][z] = max(dp[i][z], dp[i-1][z-a[j]]+b[j]),dp[i][z]表示在杀i个怪,消耗z个容忍度的情况下获得的最大的经验值。

刚看到这个题一直把思维限制在一维dp中,总是不能表达全部的条件,然后想到二维dp。因为目的是升级,所以dp表示的就要是最大的经验,下标自然就是剩下的条件忍耐度和杀怪的个数了。理清了这些,却死在设计程序上,,,,,,,,,终归是dp做的太少了。

代码:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #define INF 0x3f3f3f3f11 #define FRE() freopen("in.txt","r",stdin)12 13 using namespace std;14 typedef long long ll;15 const int maxn = 500;16 int n,m,k,s;17 int dp[maxn][maxn],a[maxn],b[maxn];18 int main()19 {20 ios::sync_with_stdio(false);21 while(cin>>n>>m>>k>>s)22 {23 memset(dp,0,sizeof(dp));24 for(int i=0; i
>a[i]>>b[i];26 for(int i = 1; i<=s; i++)//杀怪的个数27 {28 for(int j = 0; j
=n)41 {42 ans = m-i;43 break;44 }45 }46 cout<
<
View Code

 

转载于:https://www.cnblogs.com/sykline/p/9737860.html

你可能感兴趣的文章
博弈论之入门小结
查看>>
解决IE8下opacity属性失效问题,无法隐藏元素
查看>>
C#匿名函数的坑
查看>>
标记页面控件尺寸
查看>>
批处理文件中的路径问题
查看>>
appium+python 环境搭建
查看>>
WampServer下修改和重置MySQL密码
查看>>
hibernate出现No row with the given identifier exists问题
查看>>
为什么wait()和notify()属于Object类
查看>>
Part2_lesson3---ARM寄存器详解
查看>>
深入理解vsto,开发word插件的利器
查看>>
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同!
查看>>
导入properties时的坑
查看>>
python——网络编程
查看>>
Spark的39个机器学习库
查看>>
Electron学习笔记(一)
查看>>
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
查看>>
配置NRPE的通讯
查看>>
VS2005编译VTK5.10.1
查看>>
shp系列(一)——利用C++进行shp文件的读(打开)与写(创建)开言
查看>>