Ingenuous Cubrency

又是dp问题,我又想了2 30分钟,一点思路也没有,最后又是看的题解,哎,为什么我做dp的题这么烂啊!

【题目链接】Ingenuous Cubrency

【题目类型】dp

&题意:

21种硬币,第i种的价值是i* i* i,给出一个数额,问有几种方法能组成这个数额。

比如这个数额是21,那么输出3,有3种方法:

1:21个1

2:1个8,13个1

3:2个8,5个1

&题解:

每次dp,要先想到dp的对象,这次就是要枚举输入的n。

dp数组也要想到边界,这次的边界就是dp[0]=1;

外层要枚举21种数,内层枚举n。注意顺序,21种数是从1开始到21的,因为前面的总是比后面小,这样就能为后面的服务,不会缺少情况了。内层是从coin[i]到n,因为你要注意dp方程的顺序,它用到了前面的值,所以要正着枚举。

【时间复杂度】O(n)

&代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
#define cle(a,val) memset(a,(val),sizeof(a))
#define SI(N) scanf("%d",&(N))
#define SII(N,M) scanf("%d %d",&(N),&(M))
#define SIII(N,M,K) scanf("%d %d %d",&(N),&(M),&(K))
#define rep(i,b) for(int i=0;i<(b);i++)
#define rez(i,a,b) for(int i=(a);i<=(b);i++)
#define red(i,a,b) for(int i=(a);i>=(b);i--)
const ll LINF = 0x3f3f3f3f3f3f3f3f;
#define PU(x) puts(#x);
#define PI(A) cout<<(A)<<endl;
#define DG(x) cout<<#x<<"="<<(x)<<endl;
#define DGG(x,y) cout<<#x<<"="<<(x)<<" "<<#y<<"="<<(y)<<endl;
#define DGGG(x,y,z) cout<<#x<<"="<<(x)<<" "<<#y<<"="<<(y)<<" "<<#z<<"="<<(z)<<endl;
#define PIar(a,n) rep(i,n)cout<<a[i]<<" ";cout<<endl;
#define PIarr(a,n,m) rep(aa,n){rep(bb, m)cout<<a[aa][bb]<<" ";cout<<endl;}
const double EPS = 1e-9 ;
/* //////////////////////// C o d i n g S p a c e //////////////////////// */
const int MAXN = 10000 + 5 ;
int coin[50],n;
ll dp[MAXN];
void Solve()
{
while(~SI(n)){
cle(dp,0);
dp[0]=1;
for(int i=1;i<=21;i++){
for(int j=coin[i];j<=n;j++){
dp[j]+=dp[j-coin[i]];
}
}
PI(dp[n])
}
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("1.in", "r", stdin);
freopen("1.out","w",stdout);
#endif
//iostream::sync_with_stdio(false);
//cin.tie(0), cout.tie(0);
// int T;cin>>T;while(T--)
rez(i,1,21) coin[i]=i*i*i;
Solve();
return 0;
}

最新文章

  1. Android的Kotlin秘方(I):OnGlobalLayoutListener
  2. .net使用mvc模式开发web应用 模型与视图间的数据处理
  3. 3dmax渲染插件,生成2.5d瓦片
  4. Linux 下安装mysql 链接库
  5. lintcode: 跳跃游戏 II
  6. AspxGridView ComboBoxComlum列数据联动
  7. MySQL索引和锁
  8. Yii 中出现“&lt;?= ... ?&gt;”是什么意思?
  9. linux权限归属及特殊权限设置
  10. gem安装redis库时报错
  11. Unicode编码范围
  12. Django引入静态文件
  13. javascript AOP(面向切面编程)
  14. 通过使用浏览器对象模型,输出当前浏览器窗口中打开的文档的URL信息,并将显示在窗口中。
  15. 如何解决 yum安装出现This system is not registered with RHN
  16. 64位虚拟机中安装CentOS_6.7
  17. mail发邮件报错 &quot;send-mail: fatal: parameter inet_interfaces: no local interface found for ::1&quot;
  18. jsp &lt;span&gt;标签自动换行
  19. ACM_Power Mouth
  20. HDU 5421 Victor and String (回文自动机)

热门文章

  1. vim编辑器的基本操作
  2. codevs 1704 卡片游戏
  3. 软件推荐 - Source Insight
  4. Data Pump(数据抽取)介绍
  5. 转 -Linux 自检和 SystemTap (强大的内核调试工具)---包含下载地址
  6. Entity Framework 全面教程详解(转)
  7. easyUI之message
  8. EF Code First 更新数据库, 数据库迁移
  9. ASP.NET读取EXCEL文件的三种经典方法
  10. SmartAdmin 打开速度慢的原因