个人觉得DP最烦的就是确定初始边界,比如说这题,求10^9的数内各个数位相加的和中有多少个数的数位和等于S

初始条件:dp[0][j]=1   j=1、2…9

状态转移方程:

dp[i][j]表示:和为i,不超过j个数相加的符合条件的数有多少个

dp[i][j]=sum{dp[i-k][j-1]  k=0、1…9}

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
using namespace std;
int main()
{int i,j,k,dp[89][30]={0},n;for(i=0;i<12;++i)dp[0][i]=1;for(i=1;i<82;++i)for(j=1;j<10;++j) //10^9,只需要算9位就好了for(k=0;k<10&&i-k>=0;++k) //k表示第j位为k
         {if(dp[i-k][j-1]) //如果前面的数位能组合成和i-kdp[i][j]+=dp[i-k][j-1];}while(~scanf("%d",&n)){if(n==1)  //特判一下printf("10\n");else printf("%d\n",dp[n][9]);}return 0;
}

转载于:https://www.cnblogs.com/A-way/archive/2013/05/04/3059323.html

NYOJ_269_VF相关推荐

最新文章

  1. 投稿 | “轻量应用服务器”征文活动正式启动
  2. 如何看待雅虎套现760亿美元从阿里巴巴退出?
  3. android服务器 性能,Android性能优化(中)
  4. c语言 a 0,[整理]C语言中的a,a和a[0]
  5. php json_decode NULL
  6. 拓端tecdat:R语言KMEANS均值聚类和层次聚类:亚洲国家地区生活幸福质量异同可视化分析和选择最优聚类数
  7. 拓端tecdat|在Python和R中使用交叉验证方法提高模型性能
  8. win10-如何管理开机启动项?
  9. android 源码编译adb,ADB 源程序从android源码中提取
  10. PPI | protein-protein interaction | 蛋白互作分析 | gene interaction | 基因互作
  11. MIPS架构与指令简介
  12. python学习日常-----作业(4)
  13. 鼠标点击右键,反应慢,解决方法!
  14. BGP带宽是什么意思
  15. 【Android】Service管理通知栏通知模板
  16. 嵌入式开发学习路线图
  17. python re模块_python 正则表达式 (重点) re模块
  18. 云计算机具有什么特点,云计算具有哪些特点?
  19. Problem C. Increasing Shortest Path【贪心 最短路-DP】
  20. 量子通信利用量子力学原理产生密钥对信息进行加密和解密,并采用量子纠缠效应进行密钥分发,被认为是当今最安全的通信系统.有两项特性,一个是不可分割,一个是不可复制...

热门文章

  1. 使用javassist动态注入代码
  2. spring storedProcedure 使用
  3. Ocelot简易教程(七)之配置文件数据库存储插件源码解析
  4. 首届.NET Core开源峰会
  5. 清北学堂模拟赛d2t4 最大值(max)
  6. CapsLock魔改大法——变废为宝实现高效编辑
  7. 字符串函数 replace() 方法妙用
  8. Oracle 性能调优 概述
  9. oracle性能调整的九大要点:四诊断latch竞争
  10. Ruby: 延迟计算与优化