hdu 2159 FATE
来源:互联网 发布:北京百知教育骗局 编辑:程序博客网 时间:2024/06/07 19:17
状态转移方程:dp[j][l]=max(dp[j][l],dp[j-v[i]][l-1]+w[i];可以将忍耐度视为背包容量,经验视为价值,怪的种数是物品种数。
<pre name="code" class="cpp">#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define MAXN 500010int dp[505][505],v[MAXN],w[MAXN];int main(){int l,s,n,m,i,j,k,a,b;while(scanf("%d%d%d%d",&n,&m,&k,&s)!=EOF){for(i=0;i<k;i++){scanf("%d %d",&w[i],&v[i]);}memset(dp,0,sizeof(dp));for(i=0;i<k;i++)//种数{for(j=v[i];j<=m;j++)//忍耐度 {for(l=1;l<=s;l++)//个数{dp[j][l]=max(dp[j][l],dp[j-v[i]][l-1]+w[i]);}}}int flag=0;for(i=0;i<=m;i++)//找出满足经验的最小忍耐度{if(flag) break;for(j=0;j<=s;j++){if(dp[i][j]>=n){j=i,flag=1;break;}}}if(!flag) printf("-1\n");else printf("%d\n",m-j);}return 0;}
0 0
- hdu 2159 FATE
- hdu 2159 FATE
- hdu 2159 FATE
- HDU 2159 - FATE
- hdu 2159 FATE
- HDU 2159 FATE
- HDU 2159 FATE
- HDU 2159 FATE
- HDU 2159 FATE
- hdu 2159 FATE
- hdu 2159 FATE
- Hdu 2159 FATE
- HDU 2159 FATE
- hdu 2159 FATE
- hdu 2159 FATE
- hdu 2159 fate
- hdu 2159 FATE (dp)
- HDU-2159-FATE
- 2014多校训练九(HDU 4960 HDU 4961 HDU 4965 HDU 4968 HDU 4969 HDU 4970)
- 条款10:令operator=返回一个reference to * this
- Java获取数据库表列信息、索引信息、存储过程等信息 .
- 多备份:带领站长冲上“云端”
- 下推栈的数组实现
- hdu 2159 FATE
- ucos-ii学习笔记——消息邮箱的原理及使用
- UVa10527 - Persistent Numbers(数论)
- Mysql 批量更新操作的时候出错 “Multi-statement transaction required more than 'max_binlog_cache_size' bytes of s
- 为什么Java byte 类型的…
- 短信远程开机
- sizeof用法总结(个人感觉非常好的…
- 逻辑运算符<<和>>的详细分析
- C符号之逻辑运算符、左移与右移、…