题目大意:定义$f(x)$为数字$x$每一位数字的和,求$\sum\limits_{i=1}^R[f(x)=f(kx)]$。$R\leqslant10^{18},k\leqslant10^3$

题解:数位$DP$,从低位到高位$DP$,定义$f[i][j][x][y]$为从低到高第$i$位,$j=f(a\bmod{10^i})-f(ka\bmod{10^i})$,$ka\equiv x\pmod{10^i}$,$y=[a>(R\bmod{10^i})]$,转移显然。注意到$ka$位数大于$a$导致$DP$不全,可以添加$R$的位数(因为$k\leqslant10^3$,就添加$3$位)

卡点:

C++ Code:

#include <cstdio>
#include <iostream>
#include <algorithm> int k, num[30], tot;
long long f[30][500][1000][2], x;
int main() {
std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);
std::cin >> x >> k;
while (x) num[++tot] = x % 10, x /= 10;
tot += 3;
f[0][250][0][0] = 1;
for (int i = 0; i < tot; ++i)
for (int j = -200; j <= 200; ++j)
for (int x = 0; x < 1000; ++x)
for (int y = 0; y < 2; ++y) if (f[i][j + 250][x][y]) {
for (int z = 0; z < 10; ++z)
f[i + 1][j + z - (k * z + x) % 10 + 250][(k * z + x) / 10][z == num[i + 1] ? y : z > num[i + 1]] += f[i][j + 250][x][y];
}
std::cout << f[tot][250][0][0] - 1 << '\n';
return 0;
}

  

[UOJ #140]【UER #4】被粉碎的数字的更多相关文章

  1. uoj140 【UER #4】被粉碎的数字

    题目 看起来就像是数位\(\rm dp\) 不妨从竖式乘法的角度来考虑这个问题 为了方便处理进位,我们得从低位向高位填数 设\(dp[i][0/1][j][p][t]\)表示填到了第\(i\)位,卡不 ...

  2. UOJ #455 [UER #8]雪灾与外卖 (贪心、模拟费用流)

    题目链接 http://uoj.ac/contest/47/problem/455 题解 模拟费用流,一个非常神奇的东西. 本题即为WC2019 laofu的讲课中的Problem 8,经典的老鼠进洞 ...

  3. [UOJ#245][UER#7]天路(近似算法)

    允许5%的相对误差,意味着我们可以只输出$\log_{1.05} V$种取值并保证答案合法.并且注意到答案随着区间长度而单增,故取值不同的答案区间是$O(\log_{1.05} V)$的. 于是初始x ...

  4. Oracle java.sql.SQLException: 数字溢出

    六月 30, 2016 5:47:47 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinit ...

  5. 安装包制作工具 SetupFactory使用2 API清单

    2014-11-19 SetupFactory中可以通过其API控制很复杂的业务需求. 下图中展示了其内置的API种类与具体分类函数.   序号 API名称 API说明 1 Application.E ...

  6. PHP常用正则表达式汇总

    1.    平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用: 2.    "^\d+$" //非负整数(正整数 + 0) 3.    "^[0 ...

  7. PHP常用正则表达式汇总 [复制链接]

    PHP常用正则表达式汇总 [复制链接] 上一主题下一主题   离线我是小猪头   法师     发帖 539 加关注 发消息 只看楼主 倒序阅读 使用道具楼主  发表于: 2011-06-22 更多 ...

  8. php 或js 常用的正则表达式

    1.    平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用:2.    "^\d+$" //非负整数(正整数 + 0)3.    "^[0-9 ...

  9. php常用正则

    平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用: 2.    "^\d+$" //非负整数(正整数 + 0) 3.    "^[0-9]*[1 ...

随机推荐

  1. P4899 【[IOI2018] werewolf 狼人】

    感觉已经几次碰到这种类型的题目了,写篇\(Blog\)总结一下 题意: 是否存在一条\((s_i, t_i)\)的路径,满足先只走编号不超过\(L_i\)的点,再走编号不超过\(R_i\)的点 \(S ...

  2. GoCN每日新闻(2019-10-01)

    GoCN每日新闻(2019-10-01) GoCN每日新闻(2019-10-01) 1. 我依然爱着 GOPATH https://divan.dev/posts/gopath/ 2. Go 代码注释 ...

  3. Hadoop(四)—— MapReduce

    一.Hadoop版本特性 MRv1 第一代计算框架,由编程模型和运行时环境两部分组成. 编程模型是,将数据进行map操作,然后进行reduce操作,最后将计算结果存储到HDFS中. 运行时环境是,由J ...

  4. rust 函数的使用

    fn main() { println!("Hello, world!"); another_function(2,3); let y ={ let x =3; //表达式的结尾没 ...

  5. linux服务器磁盘挂载

    1.先查看当前服务器挂载的磁盘个数 fdisk -l 2.将vdb磁盘挂载到/data目录下 mount /dev/vdb /data 3.df -h  检查磁盘挂载的情况

  6. 20189220 余超《Linux内核原理与分析》第八周作业

    Linux内核如何装载和启动一个可执行程序 本章知识点 ELF(Executable and Linking Format)是一种对象文件的格式,用于定义不同类型的对象文件(Object files) ...

  7. 【CNN】--- 卷积过程中RGB与灰度的区别

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/hacker_Dem_br/article/ ...

  8. tensorflow build failed on Centos with Error: suffix or operands invalid for ""

    在redhat6.5的机器上编译tensorflow1.10,局部环境配好gcc4.8.2后,发现了如题的错误.这是关于AVX指令集识别问题.虽然gcc版本足够高,能够编出使用AVX的汇编代码,但是b ...

  9. Java文件上传下载原理

    文件上传下载原理 在TCP/IP中,最早出现的文件上传机制是FTP.它是将文件由客户端发送到服务器的标准机制. 但是在jsp编程中不能使用FTP方法来上传文件,这是由jsp运行机制所决定的 文件上传原 ...

  10. mongodb配置“主从”模式

    版本的mongodb不支持Master/slave模式了.推荐使用集群模式.大家都知道,集群模式需要多于三台的奇数台机器(奇数个进程测试有意义,实际意义不大)现在我的手头有两台主机,更合理的配置个人觉 ...