dp 硬币找零问题
来源:互联网 发布:政府的顶级域名 编辑:程序博客网 时间:2024/05/22 09:10
集训队题目:给出的硬币是一个三角形数字,用最少的硬币,同时输出最少硬币情况下硬币的最大面值。
用简单地一维dp就可以了
dp[i]表示表示面值i最少需要多少个硬币。
所有的硬币找零问题基本都可以用dp来解决,并且复杂度基本在O(n根号n级别)
因为没有打表,所以最后超时了。。。。。
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int maxn=100020;const int INF=0x7fffffff;int dp[maxn];int coin[maxn];int dq[maxn];int main(int argc, char const *argv[]){int T,i,cnt;scanf("%d",&T);for(i=1;coin[i-1]<maxn;i++){coin[i]=coin[i-1]+i;}cnt=i-2;while(T--){int N;int front=1,rear=0;scanf("%d",&N);memset(dp,0,sizeof(dp));dp[0]=0;int maxcoin=0;for(int i=1;i<=N;i++){//i denots moneyint minnext=INF;for(int j=1;j<=cnt;j++){// j denotes coinsif(i<coin[j]){break;}if(dp[i-coin[j]] <= minnext){minnext=dp[i-coin[j]];if(i==N && coin[j]>maxcoin){maxcoin=coin[j];}}}dp[i]=minnext+1;}printf("%d %d\n",dp[N],maxcoin);}return 0;}
0 0
- dp 硬币找零问题
- 硬币找零(dp)
- nyoj955硬币找零【dp】
- 最少硬币找零问题
- 硬币找零问题
- 硬币找零问题
- 背包问题 - 硬币找零
- [DP]FJSDFZOJ 1282 硬币找零
- nyoj995硬币找零(dp)
- 硬币找零问题 - 动态规划
- 硬币找零问题(Java)
- nyoj 硬币找零 995 (DP++技巧)
- NYOJ 995 硬币找零(dp)
- 硬币找零问题 动态规划问题
- 硬币找零
- 硬币找零
- 硬币找零
- 硬币找零
- UICollectionView 使用
- hadoop 开发调试环境-eclipse配置记录
- 设计模式-桥接模式
- position:static | relative | absolute | fixed
- UVA 10494 If We Were a Child Again
- dp 硬币找零问题
- UIKit框架各个类的简要说明
- 行百里者半九十,华为开发者大赛各参赛团队渐入佳境
- 协议简介之 应用层协议
- Matlab保存图片的几种方法
- Mouseenter/ mouseleave和mouseover/mouseout
- 自定义view实现侧滑删除功能
- C# winform使用log4net步骤
- Ubuntu 系统引导(grub)修复