CF1601F.Two Sorts

NOI/NOI+/CTSC

通过率:0%

时间限制:4.00s

内存限制:512MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Integers from 11 to nn (inclusive) were sorted lexicographically (considering integers as strings). As a result, array a1,a2,…,ana_1, a_2, \dots, a_n was obtained.

Calculate value of (∑i=1n((i−ai)mod  998244353))mod  109+7(\sum_{i = 1}^n ((i - a_i) \mod 998244353)) \mod 10^9 + 7.

xmod  yx \mod y here means the remainder after division xx by yy. This remainder is always non-negative and doesn't exceed y−1y - 1. For example, 5mod  3=25 \mod 3 = 2, (−1)mod  6=5(-1) \mod 6 = 5.

将 11 到 nn(含端点)的所有整数按字典序排序(将整数视为字符串)。结果得到数组 a1,a2,…,ana_1, a_2, \dots, a_n。

请计算 (∑i=1n((i−ai)mod  998244353))mod  109+7(\sum_{i = 1}^n ((i - a_i) \mod 998244353)) \mod 10^9 + 7 的值。

此处 xmod  yx \mod y 表示 xx 除以 yy 所得的余数。该余数恒为非负数,且不超过 y−1y - 1。例如,5mod  3=25 \mod 3 = 2,(−1)mod  6=5(-1) \mod 6 = 5。

输入格式

The first line contains the single integer nn (1≤n≤10121 \leq n \leq 10^{12}).

第一行包含一个整数 nn(1≤n≤10121 \leq n \leq 10^{12})。

输出格式

Print one integer — the required sum.

输出一个整数——所需的和。

输入输出样例

  • 输入#1

    3

    输出#1

    0
  • 输入#2

    12

    输出#2

    994733045
  • 输入#3

    21

    输出#3

    978932159
  • 输入#4

    1000000000000

    输出#4

    289817887

说明/提示

A string aa is lexicographically smaller than a string bb if and only if one of the following holds:

  • aa is a prefix of bb, but a≠ba \ne b;
  • in the first position where aa and bb differ, the string aa has a letter that appears earlier in the alphabet than the corresponding letter in bb.

For example, 4242 is lexicographically smaller than 66, because they differ in the first digit, and 4<64 \lt 6; 42<42042 \lt 420, because 4242 is a prefix of 420420.

Let's denote 998244353998244353 as MM.

In the first example, array aa is equal to [1,2,3][1, 2, 3].

  • (1−1)mod  M=0mod  M=0(1 - 1) \mod M = 0 \mod M = 0
  • (2−2)mod  M=0mod  M=0(2 - 2) \mod M = 0 \mod M = 0
  • (3−3)mod  M=0mod  M=0(3 - 3) \mod M = 0 \mod M = 0

As a result, (0+0+0)mod  109+7=0(0 + 0 + 0) \mod 10^9 + 7 = 0

In the second example, array aa is equal to [1,10,11,12,2,3,4,5,6,7,8,9][1, 10, 11, 12, 2, 3, 4, 5, 6, 7, 8, 9].

  • (1−1)mod  M=0mod  M=0(1 - 1) \mod M = 0 \mod M = 0
  • (2−10)mod  M=(−8)mod  M=998244345(2 - 10) \mod M = (-8) \mod M = 998244345
  • (3−11)mod  M=(−8)mod  M=998244345(3 - 11) \mod M = (-8) \mod M = 998244345
  • (4−12)mod  M=(−8)mod  M=998244345(4 - 12) \mod M = (-8) \mod M = 998244345
  • (5−2)mod  M=3mod  M=3(5 - 2) \mod M = 3 \mod M = 3
  • (6−3)mod  M=3mod  M=3(6 - 3) \mod M = 3 \mod M = 3
  • (7−4)mod  M=3mod  M=3(7 - 4) \mod M = 3 \mod M = 3
  • (8−5)mod  M=3mod  M=3(8 - 5) \mod M = 3 \mod M = 3
  • (9−6)mod  M=3mod  M=3(9 - 6) \mod M = 3 \mod M = 3
  • (10−7)mod  M=3mod  M=3(10 - 7) \mod M = 3 \mod M = 3
  • (11−8)mod  M=3mod  M=3(11 - 8) \mod M = 3 \mod M = 3
  • (12−9)mod  M=3mod  M=3(12 - 9) \mod M = 3 \mod M = 3

As a result, (0+998244345+998244345+998244345+3+3+3+3+3+3+3+3)mod  109+7(0 + 998244345 + 998244345 + 998244345 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3) \mod 10^9 + 7 == 2994733059mod  109+72994733059 \mod 10^9 + 7 == 994733045994733045

字符串 aa 的字典序小于字符串 bb,当且仅当满足以下条件之一:

  • aa 是 bb 的前缀,但 a≠ba \ne b;
  • 在 aa 与 bb 首次出现差异的位置上,aa 中的字符在字母表中位于 bb 中对应字符之前。

例如,4242 的字典序小于 66,因为它们在第一位数字处不同,且 4<64 \lt 6;42<42042 \lt 420,因为 4242 是 420420 的前缀。

我们记 998244353998244353 为 MM。

在第一个样例中,数组 aa 等于 [1,2,3][1, 2, 3]。

  • (1−1)mod  M=0mod  M=0(1 - 1) \mod M = 0 \mod M = 0
  • (2−2)mod  M=0mod  M=0(2 - 2) \mod M = 0 \mod M = 0
  • (3−3)mod  M=0mod  M=0(3 - 3) \mod M = 0 \mod M = 0

因此,(0+0+0)mod  109+7=0(0 + 0 + 0) \mod 10^9 + 7 = 0

在第二个样例中,数组 aa 等于 [1,10,11,12,2,3,4,5,6,7,8,9][1, 10, 11, 12, 2, 3, 4, 5, 6, 7, 8, 9]。

  • (1−1)mod  M=0mod  M=0(1 - 1) \mod M = 0 \mod M = 0
  • (2−10)mod  M=(−8)mod  M=998244345(2 - 10) \mod M = (-8) \mod M = 998244345
  • (3−11)mod  M=(−8)mod  M=998244345(3 - 11) \mod M = (-8) \mod M = 998244345
  • (4−12)mod  M=(−8)mod  M=998244345(4 - 12) \mod M = (-8) \mod M = 998244345
  • (5−2)mod  M=3mod  M=3(5 - 2) \mod M = 3 \mod M = 3
  • (6−3)mod  M=3mod  M=3(6 - 3) \mod M = 3 \mod M = 3
  • (7−4)mod  M=3mod  M=3(7 - 4) \mod M = 3 \mod M = 3
  • (8−5)mod  M=3mod  M=3(8 - 5) \mod M = 3 \mod M = 3
  • (9−6)mod  M=3mod  M=3(9 - 6) \mod M = 3 \mod M = 3
  • (10−7)mod  M=3mod  M=3(10 - 7) \mod M = 3 \mod M = 3
  • (11−8)mod  M=3mod  M=3(11 - 8) \mod M = 3 \mod M = 3
  • (12−9)mod  M=3mod  M=3(12 - 9) \mod M = 3 \mod M = 3

因此,(0+998244345+998244345+998244345+3+3+3+3+3+3+3+3)mod  109+7(0 + 998244345 + 998244345 + 998244345 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3) \mod 10^9 + 7 == 2994733059mod  109+72994733059 \mod 10^9 + 7 == 994733045994733045

输入解题思路,AI测评打分。不知道怎么写?

首页