题意:1个长度为2N的数,如果左边N个数的和 = 右边N个数的和,那么就是一个幸运号码。

例如:99、1230、123312是幸运号码。
给出一个N,求长度为2N的幸运号码的数量。由于数量很大,输出数量 Mod 10^9 + 7的结果即可。
解题关键:
动态规划,dp[i][j]表示i个数和为j的总数(这里包括开头为0的情况)
$dp[i][j] = \sum\limits_{k = 0}^9 {dp[i - 1][j - k]} $
最后,我们只需要用去掉0打头的情况*没有去掉0打头的情况累加并取模即可。 
这里去掉0的方法是$dp[n][i] - dp[n - 1][i]$
为什么是这样呢?因为只要第一位为0,不论后面的是否为0,都无影响,所以第一位确定,处理后面的n-1位即可。
这里可以进行滚动数组优化。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e9+;
ll dp[][];
int main(){
int n;
cin>>n;
dp[][]=;
for(int i=;i<=n;i++){
for(int j=;j<=*i;j++){
for(int k=;k<=&&k<=j;k++){
dp[i][j]+=dp[i-][j-k];
dp[i][j]%=mod;
}
}
}
ll ans=;
for(int i=;i<=*n;i++){
ans+=dp[n][i]*(dp[n][i]-dp[n-][i]);
ans%=mod;
}
cout<<ans<<"\n";
return ;
}

最新文章

  1. 一次sql排序的问题。
  2. heartbeat
  3. Tableau:数据可视化之急速BI
  4. Java程序员的日常—— POI与JDBC、Mockmvc与单元测试
  5. BZOJ 1718: [Usaco2006 Jan] Redundant Paths 分离的路径
  6. supersr--addSubview和 insertSubView 区别
  7. UVA 11552 四 Fewest Flops
  8. 11.聚合(Aggregation)
  9. ACM/ICPC ZOJ1009-Enigma 解题代码
  10. ios学习资料(一)
  11. CSS传统布局之页面布局实例
  12. jquery 如何动态添加、删除class样式方法介绍_jquery_脚本之家
  13. 3384/1750: [Usaco2004 Nov]Apple Catching 接苹果
  14. js page click
  15. Node.js 调试器
  16. 2019CVTE技术支持软件编程2
  17. Sitecore CMS中删除项目
  18. Xcode基本设置系列和Xcode报错解决方案
  19. IServerChannelSinkProvider
  20. 控制led灯并显示自己的数值

热门文章

  1. Data Structure Array: Find if there is a subarray with 0 sum
  2. Data Structure Array: Find the two numbers with odd occurrences in an unsorted array
  3. 【leetcode刷题笔记】Unique Binary Search Trees II
  4. [算法]在数组中找到出现次数大于N/K的数
  5. J2EE 领域的一些技术框架结构图
  6. table+css与xhtmL+css实现同一登陆框(代码片段)
  7. DIV CSS 笔记
  8. 使用myeclipes制造属于自己的jar
  9. 关于自动化与vTable两种暴露接口的区别-1未完......
  10. Debian for ARM install python 3.5.x