hdu 1284 dp

这题有很多种解法,可以用dp(包括从子问题推的和完全),母函数,分裂整数(这个还不了解),找规律等

下面给出其中一些方法的代码

找规律

//hdu 1284 找规律
//给出n 看能n 内有多少个 2 和多少个3
//具体看代码和一下注视

#include <stdio.h>
#include <string.h>#define N 35000__int64 ans[N];int main()
{int n;
//    计算i 可以由多少个 2 组成for(int i = 0; i < N; ++i)// 后面的 +1 表示全由1组成的(只有1中情况)ans[i] = i / 2 + 1; //则这一行表示由 2组成的情况加上由1组成的情况//    从前面往后推,看能由几个3 组成,比如 ans[3]表示钱为3时
//    由1,2分硬币组成的情况,可以表示成钱为0 时加上一个3分硬币(这时方法数为
//     钱为 0 时由1,2,3组成的情况 加上钱为3时由1,2组成的方法数)
//    因此 ans[i] += ans[i-3]+1;不需要后面的+1for(int i = 3; i < N; ++i)ans[i] += ans[i-3];//这一行ans[i]就表示由2组成的情况加上由3组成的情况
//    ans[6]就相当于由2组成的情况ans[6] 加上 由1,2,3组成的情况的ans[6-3]
//    这样往后推,就可以把 由3分组成的情况加上去while(scanf("%d", &n) != EOF)printf("%I64d\n", ans[n]);return 0;
}

dp(完全背包)

dp(完全背包)//dp(完全背包)
#include <stdio.h>
#include <string.h>#define N 35000int dp[N];int main()
{dp[0] = 1;for(int i = 1; i <= 3; ++i){   //背包容量为N,装入质量为i 的物品for(int j = i; j < N; ++j){dp[j] += dp[j-i];}}int n;while(scanf("%d", &n) != EOF)printf("%d\n", dp[n]);return 0;
}

母函数

//hdu 1284 母函数//              1分的             2分的             3分的
//母函数计算:(1+x+x^2+x^3+...)*(1+x^2+x^4+...)*(1+x^3+x^6+...)
//n 分钱要分解的方法则为 多项式相乘后 指数为n 的系数

#include <stdio.h>
#include <string.h>#define N 35000int ans[N], mul[N];int main()
{for(int i = 0; i < N; ++i)ans[i] = 1;  //全用1分组成的方法都只有1种for(int i = 2; i <= 3; ++i){for(int j = 0; j < N; ++j){                                   //系数都为1for(int k = 0; j+k < N; k += i) //( 1 + x^k + x^(k+i) + x^(k+2i) + ... ){   //指数分别为j 和k 的多项式相乘 得到指数为 j+k项,所以第j项乘以第k项mul[j+k] += ans[j]; // 得到 j+k项 的系数为 j项的加上原本 j+k项的系数
            }}for(int j = 0; j < N; ++j){ans[j] = mul[j];   //把系数保存到 ans数组里mul[j] = 0;        //初始化
        }}int n;while(scanf("%d", &n) != EOF){printf("%d\n", ans[n]);}return 0;
}

转载于:https://www.cnblogs.com/gabo/archive/2012/04/18/2454675.html

hdu 1284 dp相关推荐

  1. HDU 5928 DP 凸包graham

    给出点集,和不大于L长的绳子,问能包裹住的最多点数. 考虑每个点都作为左下角的起点跑一遍极角序求凸包,求的过程中用DP记录当前以j为当前末端为结束的的最小长度,其中一维作为背包的是凸包内侧点的数量.也 ...

  2. hdu 1171 dp(多重背包)

    View Code //hdu 1171 dp(多重背包)//题意:把所有物品的价值尽量分为相等的两份,不能等分的话 //后面那份可以稍小于前面的 //求出价值总和后,令价值的一半为背包容量,让背包尽 ...

  3. hdu 1284 钱币兑换问题

    hdu 1284 钱币兑换问题 母函数 //hdu 1284 母函数// 1分的 2分的 3分的 //母函数计算:(1+x+x^2+x^3+...)*(1+x^2+x^4+...)*(1+x^3+x^ ...

  4. HDU - 1284 钱币兑换问题 (找规律/完全背包)

    Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于32768. Out ...

  5. HDU 4832(DP+计数问题)

    HDU 4832 Chess 思路:把行列的情况分别dp求出来,然后枚举行用几行.竖用几行,然后相乘累加起来就是答案 代码: #include <stdio.h> #include < ...

  6. hdu 5086(dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5086 题目大意:给出长度为n的数组,然后要求累计里面的每个子串的和. 解题思路:这道题直接枚举肯定不行 ...

  7. hdu 2059(dp)

    龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Des ...

  8. HDU 3646 DP + 二分

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=3646 题意:你有N把武器,每把武器可以对敌人造成一定的伤害(et:攻击力500,敌人血量为200,杀死敌人 ...

  9. Hdu 4293 DP

    题意: n个人说自己前面有多少人 后面有多少人 求出说真话人数最多的情况 每个样例有 一个 n 表示n个人 接下来 n 行有a b 表示他前面的人数和后面的人数 思路: 如果已经知道了其中一组的人数~ ...

  10. hdu 3905(dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3905 思路:dp[i][j]表示前i分钟,睡了j分钟收获的的最大价值,并记tmp_dp[i][j]为从 ...

最新文章

  1. VS2010程序打包操作
  2. python qcut_Python之Pandas库学习(三):数据处理
  3. java求质数为什么%3ci 2_C语言程序设计部分习题及例题参考程序
  4. fsync与fflush的关系和区别
  5. 不要62(HDU-2089)
  6. 程序员的算法课(12)-使用通配符*,?等来查找字符串
  7. Python机器学习:多项式回归001什么是多项式回归
  8. mysql innodb trx_如何区分MySQL的innodb_flush_log_at_trx_commit和sync_binlog
  9. Java第二次作业程序设计作业
  10. 【数据库原理实验(openGauss)】认识DBMS系统
  11. 【转】从CSDN的趣味题学C# 3.0
  12. Linux系统grep查日志用法
  13. 七十三、分发系统介绍、expect脚本远程登录、expect脚本远程执行命令、expect传递参数...
  14. 软件测试报告模板什么样的?
  15. 我裂了,换领导后,竟然每天都要写日报
  16. 著者四角号码查询_著者姓名汉语拼音与四角号码数字混编书次号的应用
  17. [MATLAB]--数据插值(interp1/2多维插值)
  18. 基于微信小程序开发的demo
  19. Redis缓存击穿,穿透,雪崩等问题
  20. 数据挖掘学习笔记:标称属性(名词性)的邻近性度量

热门文章

  1. 密码学加解密实训(墨者学院摩斯密码第2题)
  2. 073:【Django数据库】ORM聚合函数详解-Count
  3. 如何发送请求以及AJAX
  4. 中小企业应该将云存储用于主数据吗?
  5. DOD,与cisco三层模型
  6. 阿里旺旺2012自动登录
  7. 转DateTimePicker 控件的使用
  8. linux下电子词典里的扩展存储卡不能访问到的问题
  9. 3月4日 投影变换、仿射、Cross Ratios交比与单目测距、投影变换代码实现logo与球筐融合
  10. 从零开始的Unity萌导书#1:Hello,Unity!