DP-硬币问题(一维)
来源:互联网 发布:h5小游戏 知乎 编辑:程序博客网 时间:2024/05/21 17:38
/*dp(i)=j 当价值是i的时候 需要的硬币数*/
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
int dp[101];
int a[101];
int main()
{
int n,p;
while(cin>>n>>p)
{
memset(a,0,sizeof(a));
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<=p;i++) //i代表当前价格
{
for(int j=0;j<n;j++) // 当前硬币的价值
{
if(a[j]>i) continue;
else if(dp[i]==0) dp[i]=dp[i-a[j]]+1; //当该价值未被记录硬币数时
else dp[i]=min(dp[i-a[j]]+1,dp[i]); //讨论放不放入该硬币时那个需要的硬币数更少
}
}
cout<<"各个价值需要的最少硬币数:";
for(int i=1;i<=p;i++) cout<<dp[i]<<" ";
cout<<endl;
}
}
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
int dp[101];
int a[101];
int main()
{
int n,p;
while(cin>>n>>p)
{
memset(a,0,sizeof(a));
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<=p;i++) //i代表当前价格
{
for(int j=0;j<n;j++) // 当前硬币的价值
{
if(a[j]>i) continue;
else if(dp[i]==0) dp[i]=dp[i-a[j]]+1; //当该价值未被记录硬币数时
else dp[i]=min(dp[i-a[j]]+1,dp[i]); //讨论放不放入该硬币时那个需要的硬币数更少
}
}
cout<<"各个价值需要的最少硬币数:";
for(int i=1;i<=p;i++) cout<<dp[i]<<" ";
cout<<endl;
}
}
0 0
- DP-硬币问题(一维)
- 硬币问题(DP)
- DP经典应用(五)硬币问题
- 【dp】最少硬币问题
- DP 换硬币问题
- dp 硬币找零问题
- 硬币问题 经典dp
- dp 之硬币问题
- 紫书dp 硬币问题
- 硬币问题(经典dp)
- 硬币找零(dp)
- 算法——硬币选择问题(dp、贪心)
- nyoj995硬币找零(dp)
- 【tyvj1075】硬币游戏(dp)
- BToj 1030 硬币问题 【DP-完全背包】
- 入门经典--硬币问题dp递归加递推
- 钱币组合问题(一):(每种硬币不限次数)
- JAVA动态规划(一)--最少硬币找零问题
- 1的个数 二进制
- CCF201604-1-折点计数
- matlab数据处理常用知识汇总
- ORACLE11.2.0.4 版本升级ORA-39700: database must be opened with UPGRADE option问题解决记录
- JAVA虚拟机、Dalvik虚拟机和ART虚拟机简要对比
- DP-硬币问题(一维)
- Hive中order by,sort by,distribute by,cluster by的区别
- s dfg dfg fgds 撒第三方士大夫随到
- 数据结构 对称矩阵的压缩存储与稀疏矩阵的转置
- 波特率与比特率
- MAP
- BZOJ 2946 [Poi2000]公共串
- Redis特点以及安装
- java变量类型