51nod 1043 幸运号码(dp)
来源:互联网 发布:bp算法 链式求导 编辑:程序博客网 时间:2024/05/22 02:25
看完题就想到了数位dp,但怎么处理却是一脸懵逼,那就去看题解咯
dp[i][j]表示i位数字的和为j的组合数
dp[i][j] = ∑dp[i-1][j-k],(k=0,1…9)。(包含前导0)
dp[i][j]-dp[i-1][j]就是dp[i][j]去掉前导0的组合数
#include <iostream>#include <algorithm>#include <cstring>using namespace std;typedef long long ll;const int MAXN = 1010;ll N;ll dp[MAXN][MAXN*9];const int mod = 1e9+7;int main(){ cin.sync_with_stdio(false); cin.tie(false); cin >> N; dp[0][0] = 1; for(int i = 0; i <= 9; ++i) dp[1][i] = 1; for(int i = 2; i <= N; ++i) { for(int j = 0; j <= 9*N; ++j) { for(int k = 0; k <= 9; ++k) { if(j >= k) dp[i][j] = (dp[i][j]+dp[i-1][j-k])%mod; else break; } } } ll sum = 0; for(int i = 0; i <= 9*N; ++i) { sum = (sum+dp[N][i]*(dp[N][i]-dp[N-1][i]))%mod; } cout << sum <<endl; return 0;}
阅读全文
0 0
- 51nod 1043 幸运号码(dp)
- 51Nod 1043 幸运号码 数位DP
- 51 nod 1043 幸运号码(数位DP)
- 51nod 1043 幸运号码 数位dp
- 51NOD 1043 幸运号码
- 51nod 1043 幸运号码
- 51Nod 1043 幸运号码
- 51nod 1043 幸运号码
- 【51Nod】1043 - 幸运号码(数位dp)
- 51nod oj 1043 幸运号码 【数位DP】
- 51nod 1043 幸运号码【dp+滚动数组】
- 51nod 1043 幸运号码 (数位dp)
- 51Nod-1043-幸运号码
- 51nod-1043 幸运号码(滚动数组)
- 1043 幸运号码 数位dp
- 幸运号码-dp
- 幸运号码 数位DP
- 51nod 1043 幸运数字(数位dp)
- LG G3在linux下使用adb工具刷机
- linux 记录
- windows和ubuntu下Python2.7+Opencv2.4.10开发环境配置
- Selenium
- java如何正确停止一个线程
- 51nod 1043 幸运号码(dp)
- orcle数据库入门(一)
- Linux内存管理(五)——内核空间管理
- Android studio 启动模拟器报错-Turn off Hyper-V
- 版本更新后js和css没更新
- JsonCpp 生成的Lib使用时出现unresolved external symbol
- List、Set、Map总结!
- 一个lpk.dll病毒的分析报告
- Python 集合