Type: RemoteJudge 1000ms 256MiB

[蓝桥杯 2023 省 A] 更小的数

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

image

小蓝有一个长度均为 nn 且仅由数字字符 090 \sim 9 组成的字符串,下标从 00n1n-1,你可以将其视作是一个具有 nn 位的十进制数字 numnum,小蓝可以从 numnum 中选出一段连续的子串并将子串进行反转,最多反转一次。小蓝想要将选出的子串进行反转后再放入原位置处得到的新的数字 numnewnum_{new} 满足条件 numnew<numnum_{new}<num,请你帮他计算下一共有多少种不同的子串选择方案,只要两个子串在 numnum 中的位置不完全相同我们就视作是不同的方案。

注意,我们允许前导零的存在,即数字的最高位可以是 00,这是合法的。

输入格式

输入一行包含一个长度为 nn 的字符串表示 numnum(仅包含数字字符 090 \sim 9),从左至右下标依次为 0n10 \sim n-1

输出格式

输出一行包含一个整数表示答案。

210102
8

提示

【样例说明】

一共有 88 种不同的方案:

  1. 所选择的子串下标为 010\sim1,反转后的 numnew=120102<210102num_{new} = 120102 < 210102
  2. 所选择的子串下标为 020\sim2,反转后的 numnew=012102<210102num_{new} = 012102 < 210102
  3. 所选择的子串下标为 030\sim3,反转后的 numnew=101202<210102num_{new} = 101202 < 210102
  4. 所选择的子串下标为 040\sim4,反转后的 numnew=010122<210102num_{new} = 010122 < 210102
  5. 所选择的子串下标为 050\sim5,反转后的 numnew=201012<210102num_{new} = 201012 < 210102
  6. 所选择的子串下标为 121\sim2,反转后的 numnew=201102<210102num_{new} = 201102 < 210102
  7. 所选择的子串下标为 141\sim4,反转后的 numnew=201012<210102num_{new} = 201012 < 210102
  8. 所选择的子串下标为 343\sim4,反转后的 numnew=210012<210102num_{new} = 210012 < 210102

【评测用例规模与约定】

对于 20%20\% 的评测用例,1n1001 \le n \le 100

对于 40%40\% 的评测用例,1n10001 \le n \le 1000

对于所有评测用例,1n50001 \le n \le 5000

区间DP

Not Claimed
Status
Done
Problem
15
Open Since
2025-7-8 0:00
Deadline
2025-8-7 23:59
Extension
24 hour(s)