幸运号码

思路:

  传说中的数位dp;

  不难发现,n(n<1000) ,那么,n个数的最大和为9*1000=9000;

  对于9000*1000的时间范围,我们可以用dp来解决;

  dp[i][j],表示第i为数总和为j的号码的个数;

  每个dp[i][j]都是dp[i-1][j-v](0<=v<=9) 的总和;

  然后按照左边的n和右边的n,分为有前导0,和没有前导0进行dp;

  然后输出排列的答案即可;

  dp[1000][9000]*2会爆空间,所以我选择压掉i维;

来,上代码:

#include <cstdio>
#include <iostream>
#include <algorithm> using namespace std; #define ri 9005
#define mod 1000000007 long long n,dp[],ans,f[]; int main()
{
scanf("%d",&n),f[]=;
for(int i=;i<=;i++) dp[i]=,f[i]=;
for(int i=;i<=n;i++)
{
for(int j=*n;j>=;j--)
{
long long dpos=,fpos=;
for(int v=;v<=;v++)
{
if(j-v>=)
{
fpos=(fpos+f[j-v])%mod;
dpos=(dp[j-v]+dpos)%mod;
}
else break;
}
f[j]=fpos,dp[j]=dpos;
}
}
for(int i=;i<=*n;i++) ans=(ans+(dp[i]*f[i])%mod)%mod;
cout<<ans;
return ;
}

最新文章

  1. 基于trie树的具有联想功能的文本编辑器
  2. 【原创】如何在Android Studio下调试原生安卓Framework层面的源代码
  3. Qt中数据模块学习
  4. Android Studio构建系统基础
  5. jQuery知识点总结(第三天)
  6. 斑点检测(LoG,DoG)(下)
  7. bzoj 2761: [JLOI2011]不重复数字
  8. 2016 - 1 -19 初探NSOperation
  9. 算法系列5《SSF33》
  10. BZOJ3122 随机数生成器
  11. Innodb的启动
  12. confirm的用法 一般用于按钮操作时确定是否执行
  13. cocos2d-X-3.X 场景与层
  14. 024找到二维阵列(keep it up)
  15. javascript 控制台输出 图片 console.log 真强大 真佩服你们的创造力
  16. JPA + SpringData 操作数据库原来可以这么简单 ---- 深入了解 JPA - 3
  17. css实现文本缩略显示
  18. c# linq 汇总
  19. 关于ArrayList中的iterator返回的事迭代器实例问题。
  20. Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem C. Cargo Transportation 暴力

热门文章

  1. iOS SDK中使用NSXMLParser解析XML(iphone网络篇三)
  2. c++ 操作符优先级
  3. MySQL查询数据库中表名或字段名
  4. poj 23565-Find a multiple
  5. v-model 的修饰符
  6. 2 Model层 - 模型查询
  7. Azure继续降价云 价格战就此终结?
  8. 48、android代码架构总结
  9. java自动化测试开发环境搭建(更新至2018年10月8日 11:42:15)
  10. caffe的python接口提取resnet101某层特征