首页 技术 正文
技术 2022年11月17日
0 收藏 966 点赞 2,773 浏览 776 个字

这个数位dp倒是没什么限制条件,只是需要在过程中把每个数字出现次数记录一下即可。记忆化返回时数学算出。框架还是套板子。

 #include <cstdio>
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std; typedef long long ll;
ll n, m, cnt1[], cnt2[], dp[][];
int tot, a[]; ll dfs(int pos, int state0, int limit, ll *cnt) {
if (!pos) {
cnt[] += state0;
return ;
}
if (!limit && !state0 && dp[pos][state0] != -) {
for (int i = ; i <= ; i++) {
cnt[i] += pow(, pos - ) * pos;
}
return dp[pos][state0];
} int up = limit ? a[pos] : ;
ll ret = ; for (int i = ; i <= up; ++i) {
ll tmp = dfs(pos - , state0 & (!i), limit & (i == a[pos]), cnt);
cnt[i] += tmp;
if (i == && state0) cnt[i] -= tmp;
ret += tmp;
} if (!limit) dp[pos][state0] = ret;
return ret;
} void solve(ll x, ll *cnt) {
for (tot = ; x; x /= )
a[++tot] = x % ;
dfs(tot, , , cnt);
} int main() {
memset(dp, -, sizeof dp); cin >> n >> m;
solve(m, cnt1);
solve(n - , cnt2); for (int i = ; i <= ; ++i)
printf("%lld ", cnt1[i] - cnt2[i]); return ;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,023
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,513
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,361
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,143
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,774
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,853