Comet OJ Contest #15 D. 双十一特惠(困难版)
以 $d(x)$ 表示正整数 $x$ 的十进制表示的数位之和。熟知下列关于 $d(x)$ 的结论:
- $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}$。
- 十进制下,在正整数 $a,b$ 相加的过程中,每发生一次进位数位之和减少 $9$。因而有 $d(a + b) = d(a) + d(b) - 9c(a, b)$。$c(a, b)$ 表示十进制下 $a, b$ 相加发生的进位次数。
- 正整数 $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$。
注:
- 本文参考了源曲明的题解。
- $d(9v + n) \equiv n \pmod{9}$ 即 $d(n) \equiv n \pmod{9}$。
官方题解:

这个思路比我上面的思路要好得多。下面对官方题解作几个注解:
- 由于 $x > 0$ 且 $9v + x$ 是 $10$ 的倍数,因此可以不用管 $9v$ 的个位,直接往 $9v$ 的十位不断加一。
Comet OJ Contest #15 D. 双十一特惠(困难版)的更多相关文章
- Comet OJ - Contest #15 题解
传送门 \(A\) 咕咕 const int N=1005; int a[N],n,T; int main(){ for(scanf("%d",&T);T;--T){ sc ...
- Comet OJ - Contest #15(B: 当我们同心在一起 )
题目链接 题目描述 平面上有 nn 个坐标相异的点,请问当中有多少组非共线的三个点,这三个点的 外心 也在这 nn 个点之中? 输入描述 第一行有一个正整数 nn 代表平面上的点数. 接下来有 nn ...
- Comet OJ - Contest #2 简要题解
Comet OJ - Contest #2 简要题解 cometoj A 模拟,复杂度是对数级的. code B 易知\(p\in[l,r]\),且最终的利润关于\(p\)的表达式为\(\frac{( ...
- Comet OJ - Contest #2简要题解
Comet OJ - Contest #2简要题解 前言: 我没有小裙子,我太菜了. A 因自过去而至的残响起舞 https://www.cometoj.com/contest/37/problem/ ...
- Comet OJ - Contest #4--前缀和
原题:Comet OJ - Contest #4-B https://www.cometoj.com/contest/39/problem/B?problem_id=1577传送门 一开始就想着暴力打 ...
- Comet OJ - Contest #11 题解&赛后总结
Solution of Comet OJ - Contest #11 A.eon -Problem designed by Starria- 在模 10 意义下,答案变为最大数的最低位(即原数数位的最 ...
- Comet OJ - Contest #8
Comet OJ - Contest #8 传送门 A.杀手皇后 签到. Code #include <bits/stdc++.h> using namespace std; typede ...
- Comet OJ - Contest #13-C2
Comet OJ - Contest #13-C2 C2-佛御石之钵 -不碎的意志-」(困难版) 又是一道并查集.最近做过的并查集的题貌似蛮多的. 思路 首先考虑,每次处理矩形只考虑从0变成1的点.这 ...
- Comet OJ - Contest #13 「火鼠的皮衣 -不焦躁的内心-」
来源:Comet OJ - Contest #13 芝士相关: 复平面在信息学奥赛中的应用[雾 其实是道 sb 题??? 发现原式貌似十分可二项式定理,然后发现确实如此 我们把 \(a^i\) 替换成 ...
随机推荐
- 牛客 17439:Endless Pallet
题目传送门 算法:min-max 容斥.树上背包.NTT. 题意简述 有一棵 \(n\) 个点的树.一开始所有点都是白色,每次操作会随机选择 \(\frac{n \times (n + 1)}{2}\ ...
- LoadLibraryA 和 GetProcAddress 调用动态库
通过LoadLibraryA 和 GetProcAddress,动态调用无需配置链接库lib和相关的头文件配置.下面介绍一个例子的实现 1.动态库 A.加法类 头文件:#pragma once cla ...
- nodejs基础(回调函数、模块、事件、文件读写、目录的创建与删除)
node官网:http://nodejs.cn/ 今天想看看node的视频,对node进一步了解, 1.我们可以从官网下载node到自己的电脑上,今天了解到node的真正概念,node时javascr ...
- 1632:【 例 2】[NOIP2012]同余方程
#include<bits/stdc++.h> #define ll long long using namespace std; void Exgcd(ll a,ll b,ll & ...
- 9Flutter GridView组件 以及动态GridView
main.dart import 'package:flutter/material.dart'; import 'res/listData.dart'; /* GridView : 通过GridVi ...
- Build Telemetry for Distributed Services之Open Telemetry来历
官网:https://opentelemetry.io/ github:https://github.com/open-telemetry/ Effective observability requi ...
- 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 ...
- 【转载】CentOS7下使用LVM给系统硬盘扩容
原文地址:https://www.cnblogs.com/ding2016/p/9680690.html 简单介绍: LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是L ...
- Windows 10 下如何彻底关闭 Hyper-V 服务
以管理员身份运行命令提示符 执行命令 bcdedit /set hypervisorlaunchtype off 重启,运行vm即可. 如果想要恢复hyper启动 bcdedit / set hype ...
- 【DSP开发技术】影响高性能DSP功耗的因素及其优化方法
影响高性能DSP功耗的因素及其优化方法 德州仪器DSP技术应用工程师 冯华亮 摘要 本文讨论影响高性能DSP功耗的因素,介绍一些DSP功耗的优化方法. 随着嵌入式应用需求的不断提高,DSP的速度也不断 ...