当前位置:网站首页>【SSL集训DAY2】有趣的数【数位DP】
【SSL集训DAY2】有趣的数【数位DP】
2022-08-09 22:35:00 【VL——MOESR】

思路:
c o d e code code
#include<iostream>
#include<cstring>
#include<cstdio>
#define ll long long
using namespace std;
ll n, ans, len;
ll f[21][163][163];
ll lim[20], a[20];
inline ll dfs(register ll x, register ll sum, register ll k, register ll r, register ll limit) {
if(x > len && sum == 0 && r == 0) {
f[x][sum][r] = 1;
return 1;
}
if(x > len) {
f[x][sum][r] = 0;
return 0;
}
if(!limit && f[x][sum][r] != -1) return f[x][sum][r];
register ll tmp = 0;
if(limit) {
for(register ll i = 0; i <= lim[x]; ++ i)
if(sum - i >= 0)
tmp += dfs(x + 1, sum - i, k, (r * 10 + i) % k, i == lim[x]);
}
else {
for(register ll i = 0; i <= 9; ++ i)
if(sum - i >= 0)
tmp += dfs(x + 1, sum - i, k, (r * 10 + i) % k, 0);
}
if(!limit) f[x][sum][r] = tmp;
return tmp;
}
int main() {
scanf("%lld", &n);
register ll m = n;
while(m != 0) {
++ len;
a[len] = m % 10;
m /= 10;
}
for(register ll i = 1; i <= len; ++ i) lim[i] = a[len - i + 1];
for(register ll i = 1; i <= len * 9; ++ i)
{
memset(f, -1, sizeof(f));
ans += dfs(1, i, i, 0, 1);
}
printf("%lld", ans);
return 0;
}
边栏推荐
- && 不是此版本的有效语句分隔符
- 68. qt quick-qml multi-level folding drop-down navigation menu supports dynamic add/unload, support qml/widget loading, etc.
- 金仓数据库 KingbaseGIS 使用手册(6.6. 几何对象校验函数、6.7. 空间参考系函数)
- 如何知道电脑开机记录?
- Redis集群
- Click: 518. Change Exchange II
- 【JZOF】77 Print binary tree in zigzag
- The latest "Grain Academy Development Tutorial" in 2022: 10 - Front-end payment module
- 恭喜获奖得主 | 互动有礼获赠 Navicat Premium
- 巴比特 | 元宇宙每日必读:国内首个数字人产业专项支持政策发布,2025年北京数字人产业规模将破500亿元...
猜你喜欢
随机推荐
2022-08-09 mysql/stonedb-子查询性能提升-概论
ABAP中Collect的用法
直播app开发搭建,flutter 实现自适应、自动换行、相对布局
【云原生】一文讲透Kubevela addon如何添加腾讯Crane
【诗歌】最高级的惩罚就是沉默
How to match garbled characters regularly?
kubesphere
深入理解多线程(第一篇)
力扣:377. 组合总和 Ⅳ
2022年最新《谷粒学院开发教程》:10 - 前台支付模块
恭喜获奖得主 | 互动有礼获赠 Navicat Premium
【哲理】事教人
力扣:474.一和零
函数习题(下)
Redis集群
2022-08-09 mysql/stonedb-慢SQL-Q16分析
经济衰退即将来临前CIO控制成本的七种方法
直播预告 | ICML 2022 11位一作学者在线分享神经网络,图学习等前沿研究
A Shanghai technology company was fined 220,000 for brushing orders, exposing the gray industry chain of online brushing
JSON对象和字符串相互转化









