又一次降智……

(数位 DP 原来可以写这么短,学到了)

问题可以转化为求数位中 $\ge k$ 的有恰好 $j$ 位的数的个数。设为 $c_{j,k}$。

那么答案就是:(考虑把 $k$ 的贡献拆开,比如 $9$ 的贡献拆成 $1$ 的贡献的 $9$ 倍,然后分配到 $1$ 到 $9$)

$$\sum_{1\le j\le n,1\le k\le 9}c_{j,k}\underbrace{111\dots111}_{j}$$

求 $c_{j,k}$ 可以数位 DP。(此处不是记忆化搜索的形式,所以方程会有点不同)

$f[i][j][k][l]$ 表示前 $i$ 位,$\ge k$ 的有恰好 $j$ 位,$l$ 是有没有顶到上界(就是后面要不要顶着 $n$ 枚举,类似记忆化搜索中的 $limit$)。

转移较为显然,不再赘述。

时间复杂度 $O(len^2)$。(有一个 $100$ 的常数)

#include<bits/stdc++.h>
using namespace std;
const int maxn=,mod=1e9+;
#define FOR(i,a,b) for(int i=(a);i<=(b);i++)
#define ROF(i,a,b) for(int i=(a);i>=(b);i--)
#define MEM(x,v) memset(x,v,sizeof(x))
inline int read(){
int x=,f=;char ch=getchar();
while(ch<'' || ch>'') f|=ch=='-',ch=getchar();
while(ch>='' && ch<='') x=x*+ch-'',ch=getchar();
return f?-x:x;
}
int n,f[maxn][maxn][][],ans;
char s[maxn];
int calc(int x){
int pro=,s=;
FOR(i,,x){
s=(s+pro)%mod;
pro=10ll*pro%mod;
}
return s;
}
int main(){
scanf("%s",s+);
n=strlen(s+);
FOR(i,,) f[][][i][]=;
FOR(i,,n) FOR(j,,i) FOR(k,,) FOR(l,,) if(l<k || j){
if(l==s[i]-'') f[i][j][k][]=(f[i][j][k][]+f[i-][j-(l>=k)][k][])%mod;
f[i][j][k][]=(f[i][j][k][]+f[i-][j-(l>=k)][k][])%mod;
if(l<s[i]-'') f[i][j][k][]=(f[i][j][k][]+f[i-][j-(l>=k)][k][])%mod;
}
FOR(j,,n) FOR(k,,) ans=(ans+1ll*calc(j)*(f[n][j][k][]+f[n][j][k][])%mod)%mod;
printf("%d\n",ans);
}

CF908G New Year and Original Order(DP,数位 DP)的更多相关文章

  1. CF908G New Year and Original Order 数位DP

    传送门 看到数据范围到\(10^{700}\)毫无疑问数位DP.那么我们最重要的问题是如何有效地维护所有数位排序之后的数的值. 对于某一个数\(x\),设\(f_{x,i} (i \in [1,9]) ...

  2. hdu 5642 King's Order(数位dp)

    Problem Description After the king's speech , everyone is encouraged. But the war is not over. The k ...

  3. HDU 5642 King's Order【数位dp】

    题目链接: http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=677&pid=1003 题意: 求长度为n的序列 ...

  4. [DP]数位DP总结

     数位DP总结 By Wine93 2013.7 1.学习链接 [数位DP] Step by Step   http://blog.csdn.net/dslovemz/article/details/ ...

  5. 数位dp模板 [dp][数位dp]

    现在才想到要学数位dp,我是不是很弱 答案是肯定的 以一道自己瞎掰的题为模板 //题: //输入数字n //从0枚举到n,计算这n+1个数中含有两位数a的数的个数 //如12930含有两位数93 #i ...

  6. 【xsy1611】 数位dp 数位dp

    这题是显然的数位$dp$,然而我居然写了一个下午!!! 我们不难想到差分,令$solve(x,y)$表示从第一个数字在区间$[0,x]$,第二个数字在区间$[0,y]$的答案. 不难发现题目中给了你一 ...

  7. Codeforces Round #235 (Div. 2) D. Roman and Numbers 状压dp+数位dp

    题目链接: http://codeforces.com/problemset/problem/401/D D. Roman and Numbers time limit per test4 secon ...

  8. hdu4352-XHXJ's LIS状压DP+数位DP

    (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 题意:传送门  原题目描述在最下面.  在区间内把整数看成一个阿拉伯数字的集合,此集合中最长严格上升子序列的长度为k的个数. 思路: ...

  9. luogu P4798 [CEOI2015 Day1]卡尔文球锦标赛 dp 数位dp

    LINK:卡尔文球锦标赛 可以先思考一下合法的序列长什么样子. 可以发现后面的选手可以使用前面出现的编号也可以直接自己新建一个队. 其实有在任意时刻i 序列的mex>max.即要其前缀子序列中1 ...

随机推荐

  1. 明解JAVA 第一章答案

    练习1-1 无法运行 练习1-2 package candle1220; class Nightwatch{ public static void main(String[] args) { Syst ...

  2. Spring Cloud Sleuth+ZipKin+ELK服务链路追踪(七)

    序言 sleuth是spring cloud的分布式跟踪工具,主要记录链路调用数据,本身只支持内存存储,在业务量大的场景下,为拉提升系统性能也可通过http传输数据,也可换做rabbit或者kafka ...

  3. ELK 日志平台 For Windows

    一.Logstash 安装 1. 下载最新版本的logstash:  https://www.elastic.co/fr/downloads/logstash 下载zip格式的压缩包. 然后解压缩放到 ...

  4. 基于opencv 识别、定位二维码 (c++版)

    前言 因工作需要,需要定位图片中的二维码:我遂查阅了相关资料,也学习了opencv开源库.通过一番努力,终于很好的实现了二维码定位.本文将讲解如何使用opencv定位二维码. 定位二维码不仅仅是为了识 ...

  5. Socket与WebSocket以及http与https重新总结

    Socket与WebSocket以及http与https重新总结 一.Socket 网络中的Socket是一个抽象的接口 ,而是为了方便使用TCP或UDP而抽象出来的一层 ,可以理解为网络中连接的两端 ...

  6. EntityUtils.toString(entity)处理字符集问题解决

    爬取51Job和猎聘网的信息,想处理字符集问题(51job为gbk,猎聘为utf-8), 找到两个网站字符集信息都在同一标签下 就想先把网页保存成String,解析一遍获取字符集,然后将网页转换成对应 ...

  7. python3之int类的常用方法练习

    int类的常用方法练习 #coding:utf-8 #int类的常用方法 num1 = 18 num2 = -15 #查询创建num1所用的类 print(type(num1)) #num1占用的最小 ...

  8. Linux下java验证码不显示:Could not initialize class sun.awt.X11FontManager

    一.问题 javaweb项目,登录的时候有个图片验证码的功能.在Windows本地测试能够正常显示,部署到Linux上就不行了.报错如下: org.springframework.web.util.N ...

  9. vue中利用Promise封装jsonp并调取数据

    Promise就是一个给一步操作提供的容器,在这个容器里,有两个阶段无法改变的阶段,第一个阶段就是Pending(进行),第二个阶段就是结果阶段,包含Fulfilled(成功).Rejected(失败 ...

  10. win10笔记本电脑连wifi显示“无internet,安全”解决办法

    吹一波, 不出意外的话,这应该是网上最全最详细的解决办法......毕竟妹子的电脑遇到了问题,咱一定要给她解决啊. 问题描述:连上了WiFi,显示“无Internet,安全”.但实际上她的电脑是有网的 ...