以 $d(x)$ 表示正整数 $x$ 的十进制表示的数位之和。熟知下列关于 $d(x)$ 的结论:

  1. $d(x) \equiv x \pmod{9}$。从而对于任意正整数列 $a_1, a_2, \dots, a_n$ 有 $\sum_{i=1}^{n} d(a_i) \equiv d(\sum_{i=1}^{n}a_i) \pmod{9}$。
  2. 十进制下,在正整数 $a,b$ 相加的过程中,每发生一次进位数位之和减少 $9$。因而有 $d(a + b) = d(a) + d(b) - 9c(a, b)$。$c(a, b)$ 表示十进制下 $a, b$ 相加发生的进位次数。
  3. 正整数 $x$ 可表为 $\sum_{i =1 }^{n}10^{e_i}$ 且 $n$ 可以取到等差数列 $x, x - 9, x -18, \dots, d(x)$ 中的每一个值。证明:考虑下述过程:从 $x$ 个 1 开始,此时 $n = x$。若 $x\ge 10$ 则可以把 $10$ 个 1 变成 $1$ 个 10,使 $n$ 变为 $x - 9$;不断如此操作直到剩下不足 $10$ 个 1。继续对剩下的 10 进行类似的操作。如此反复操作,直到无法操作。

十进制下 $k$ 个连续的 1 可表为 $\frac{10^{k} - 1}{9}$。
题目所问相当于 $\arg\min_{n} v = \sum_{i=1}^{n} \frac{10^{e_i} - 1}{9}$($e_i \ge 1$) 即 $\arg\min_{n} 9v+n = \sum_{i=1}^{n} 10^{e_i}$。根据上述结论 1 和 3,$n$ 只要满足

  • $d(9v+n) \equiv n \pmod{9}$
  • $n \ge d(9v+n)$

即可。

因此可以枚举 $n$。下面给出答案的上界。令 $t = 9v$,注意到 $d(t) \equiv 0\pmod{9}$,反复进行下列操作直到 $t$ 变成零:$t \to t+ 1$,$t \to t - 10^{h}$,$h$ 表示 $t$ 的十进制表示的最高位,例如,若 $t = 234$ 则 $h = 2$。注意到每次操作过后 $d(t)\bmod 9$ 不变。因此,每次操作之前必有 $t\ge 10$,因而有 $h\ge 1$。 在 $t \to t+1$ 这一步,$d(t)$ 至多增加 $1$,而 $t \to t-10^h$ 这一步,$d(t)$ 恰好减少 $1$。另外,每 $10$ 次操作之中,必有一次 $t \to t+1$ 使个位发生进位,在这个操作后 $d(t)$ 至少减少 $10$。因此每 $10$ 次操作过后 $d(t)$ 至少减少 $10$,因此答案不超过 $d(9v) + 10$。

注:

  1. 本文参考了源曲明的题解
  2. $d(9v + n) \equiv n \pmod{9}$ 即 $d(n) \equiv n \pmod{9}$。

官方题解:

这个思路比我上面的思路要好得多。下面对官方题解作几个注解:

  1. 由于 $x > 0$ 且 $9v + x$ 是 $10$ 的倍数,因此可以不用管 $9v$ 的个位,直接往 $9v$ 的十位不断加一。

Comet OJ Contest #15 D. 双十一特惠(困难版)的更多相关文章

  1. Comet OJ - Contest #15 题解

    传送门 \(A\) 咕咕 const int N=1005; int a[N],n,T; int main(){ for(scanf("%d",&T);T;--T){ sc ...

  2. Comet OJ - Contest #15(B: 当我们同心在一起 )

    题目链接 题目描述 平面上有 nn 个坐标相异的点,请问当中有多少组非共线的三个点,这三个点的 外心 也在这 nn 个点之中? 输入描述 第一行有一个正整数 nn 代表平面上的点数. 接下来有 nn  ...

  3. Comet OJ - Contest #2 简要题解

    Comet OJ - Contest #2 简要题解 cometoj A 模拟,复杂度是对数级的. code B 易知\(p\in[l,r]\),且最终的利润关于\(p\)的表达式为\(\frac{( ...

  4. Comet OJ - Contest #2简要题解

    Comet OJ - Contest #2简要题解 前言: 我没有小裙子,我太菜了. A 因自过去而至的残响起舞 https://www.cometoj.com/contest/37/problem/ ...

  5. Comet OJ - Contest #4--前缀和

    原题:Comet OJ - Contest #4-B https://www.cometoj.com/contest/39/problem/B?problem_id=1577传送门 一开始就想着暴力打 ...

  6. Comet OJ - Contest #11 题解&赛后总结

    Solution of Comet OJ - Contest #11 A.eon -Problem designed by Starria- 在模 10 意义下,答案变为最大数的最低位(即原数数位的最 ...

  7. Comet OJ - Contest #8

    Comet OJ - Contest #8 传送门 A.杀手皇后 签到. Code #include <bits/stdc++.h> using namespace std; typede ...

  8. Comet OJ - Contest #13-C2

    Comet OJ - Contest #13-C2 C2-佛御石之钵 -不碎的意志-」(困难版) 又是一道并查集.最近做过的并查集的题貌似蛮多的. 思路 首先考虑,每次处理矩形只考虑从0变成1的点.这 ...

  9. Comet OJ - Contest #13 「火鼠的皮衣 -不焦躁的内心-」

    来源:Comet OJ - Contest #13 芝士相关: 复平面在信息学奥赛中的应用[雾 其实是道 sb 题??? 发现原式貌似十分可二项式定理,然后发现确实如此 我们把 \(a^i\) 替换成 ...

随机推荐

  1. 牛客 17439:Endless Pallet

    题目传送门 算法:min-max 容斥.树上背包.NTT. 题意简述 有一棵 \(n\) 个点的树.一开始所有点都是白色,每次操作会随机选择 \(\frac{n \times (n + 1)}{2}\ ...

  2. LoadLibraryA 和 GetProcAddress 调用动态库

    通过LoadLibraryA 和 GetProcAddress,动态调用无需配置链接库lib和相关的头文件配置.下面介绍一个例子的实现 1.动态库 A.加法类 头文件:#pragma once cla ...

  3. nodejs基础(回调函数、模块、事件、文件读写、目录的创建与删除)

    node官网:http://nodejs.cn/ 今天想看看node的视频,对node进一步了解, 1.我们可以从官网下载node到自己的电脑上,今天了解到node的真正概念,node时javascr ...

  4. 1632:【 例 2】[NOIP2012]同余方程

    #include<bits/stdc++.h> #define ll long long using namespace std; void Exgcd(ll a,ll b,ll & ...

  5. 9Flutter GridView组件 以及动态GridView

    main.dart import 'package:flutter/material.dart'; import 'res/listData.dart'; /* GridView : 通过GridVi ...

  6. Build Telemetry for Distributed Services之Open Telemetry来历

    官网:https://opentelemetry.io/ github:https://github.com/open-telemetry/ Effective observability requi ...

  7. PAT 甲级 1018 Public Bike Management (30 分)(dijstra+dfs,dfs记录路径,做了两天)

    1018 Public Bike Management (30 分)   There is a public bike service in Hangzhou City which provides ...

  8. 【转载】CentOS7下使用LVM给系统硬盘扩容

    原文地址:https://www.cnblogs.com/ding2016/p/9680690.html 简单介绍: LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是L ...

  9. Windows 10 下如何彻底关闭 Hyper-V 服务

    以管理员身份运行命令提示符 执行命令 bcdedit /set hypervisorlaunchtype off 重启,运行vm即可. 如果想要恢复hyper启动 bcdedit / set hype ...

  10. 【DSP开发技术】影响高性能DSP功耗的因素及其优化方法

    影响高性能DSP功耗的因素及其优化方法 德州仪器DSP技术应用工程师 冯华亮 摘要 本文讨论影响高性能DSP功耗的因素,介绍一些DSP功耗的优化方法. 随着嵌入式应用需求的不断提高,DSP的速度也不断 ...