动态规划:采药
来源:互联网 发布:ug汽车大模具编程刀路 编辑:程序博客网 时间:2024/05/17 14:25
如果你是辰辰,你能完成这个任务吗?
70 371 10069 11 2
3
典型01背包问题;
思路如下:
m[i][j]就是以j为时间所能存前i件物品的最大价值,a[i].value是第i件物品的价值,a[i].time是第i件物品的时间;
得到状态转移方程:a[i][j]=max{a[i-1][j],a[i-1][j-a[i].time]+a[i].value}
实现如下:
#include<bits/stdc++.h>using namespace std;int main(){ struct plants { int value; int time; }; plants a[105]; int i,m,t,j,k,x,y; cin>>t>>m; for(i=0,k=0;i<m;i++) { cin>>x>>y; if(x<=t) { a[k].time=x; a[k++].value=y; } } int max[1005]={0}; for(i=0;i<k;i++) { for(j=t;j>=a[i].time;j--) //要遍历所有能装下a[i]的情况,才能进行后来计算 { if(max[j]<max[j-a[i].time]+a[i].value) max[j]=max[j-a[i].time]+a[i].value; } } cout<<max[t];}
#include<bits/stdc++.h>using namespace std;int main(){ int i,m,t,j,x,y,max[1005]={0}; cin>>t>>m; for(i=1;i<=m;i++) { cin>>x>>y; if(x<=t) { for(j=t;j>=x;j--) { if(max[j]<max[j-x]+y) max[j]=max[j-x]+y; } } } cout<<max[t];}
0 0
- 采药--动态规划
- 采药 动态规划
- 动态规划-采药
- 动态规划:采药
- 动态规划 采药
- 动态规划―采药
- 【动态规划】poj2773采药问题
- Vijos P1104 采药 动态规划
- ACM-动态规划3-采药
- 动态规划 03 (采药)
- 动态规划练习--03(采药)
- 动态规划—03采药
- 动态规划练习03:采药
- 找啊找啊找GF --动态规划--类似采药
- Algorithm学习笔记 --- 采药(动态规划)
- |Tyvj|NOIP2005|动态规划|P1005 采药
- 动态规划-采药问题 [原题+题解]
- 【NOIP动态规划专题】采药2
- Java幂等
- 最长上升子序列
- Linux 查看端口占用
- 在进行USB CDC类开发时,无法发送64整数倍的数据(续)
- 学习HTML语法的过程——第一章
- 动态规划:采药
- 单调队列 POJ 2823+单调栈 HDU 1506
- <Android 开源库> FlycoTabLayout 从头到脚
- poj 3009 Curling 2.0
- hihocoder 1142 三分法求极值
- 如何控制android中ImageView的位置
- python 将对象设置为可迭代有两种实现方式
- Google数据分析
- 小白训练Day3