1068. Find More Coins (30)
来源:互联网 发布:数控铣床编程跑车图案 编辑:程序博客网 时间:2024/06/05 09:53
1068. Find More Coins (30)
考察动态规划
#include <iostream>#include <vector>#include <algorithm>using namespace std;const int MAXN=10004,MAXM=104;int n,m;int v[MAXN],dp[MAXN][MAXM];bool flag[MAXN][MAXM];int main(){ cin>>n>>m; for(int i=1;i<=n;++i) cin>>v[i]; sort(v+1,v+n+1,greater<int>()); for(int i=1;i<=n;++i) { for(int j=1;j<=m;++j) { if(j<v[i]||dp[i-1][j-v[i]]+v[i]<dp[i-1][j]) dp[i][j]=dp[i-1][j]; else { dp[i][j]=dp[i-1][j-v[i]]+v[i]; flag[i][j]=true; } } } if(dp[n][m]!=m) cout<<"No Solution"; else { vector<int> ans; while(m) { while(!flag[n][m])--n; ans.push_back(v[n]); m-=v[n--]; } for(auto it=ans.begin();it!=ans.end();++it) (it==ans.end()-1)?cout<<*it:cout<<*it<<" "; } return 0;}
0 0
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- 1068. Find More Coins (30)
- C++ 制作自己的双向链表List,高效的模拟C# List一些主要方法
- 【Android】无法在外置存储上创建文件夹,file.mkdirs()一直返回false
- 支付宝 Android 版使用的开源组件
- sql函数,为某个字段的值加前缀或者后缀
- 376. Wiggle Subsequence -Medium
- 1068. Find More Coins (30)
- 修改oracle用户的密码
- Spring深入浅出(二)IOC详解
- oracle把密码设置为永久和修改密码步骤
- sql的替换字段内容语句
- ManualResetEvent和AutoResetEvent
- 关于false和true默认状态的理解
- 进程与线程的简单理解
- 数据库导入语句