QOJ.ac

QOJ

実行時間制限: 1.0 s メモリ制限: 2048 MB 満点: 100

#16186. 逆序对

統計

每年,来自全球的数学家和计算机科学家都会聚集在一起,参加享誉盛名的逆序对计数谜题大赛(Inversion Counting Puzzle Contest, ICPC)。对于下一届 ICPC,组织者准备了以下挑战:给定一个由小写字母组成的字符串 $S$,计算其中逆序对的数量。一个逆序对是指一对下标 $i < j$,使得 $S_i$(位置 $i$ 处的字母)在字母表中排在 $S_j$ 之后。

然而,就在上个月,一组杰出的研究人员设计出了一种复杂的算法,可以极快地计算出字符串中的逆序对。虽然这对于科学的进步是一个好消息,但对 ICPC 的工作人员来说却是一场噩梦,因为他们计划的挑战现在已经过时了。

这个问题被反映到了总命题人那里,他随后提出了一个聪明的主意。与其仅仅给出一个字符串 $S$,不如要求参赛者在计算逆序对之前将该字符串重复 $N$ 次。如果裁判将 $N$ 设得足够大,在某种程度上,研究人员提出的算法就会开始变得太慢。ICPC 的工作人员对这个想法非常满意,于是继续组织下一届比赛。

不幸的是,现在裁判们自己也不知道输入文件的答案了,因此无法对提交的代码进行评测!ICPC 刚刚拉开帷幕,参赛者们即将开始提交他们的解决方案。请通过计算答案来帮助裁判,以便 ICPC 能够顺利进行。

输入格式

第一行包含一个由小写字母组成的字符串 $S$($1 \le |S| \le 10^5$)。

第二行包含一个整数 $N$($1 \le N \le 10^{12}$),表示字符串 $S$ 需要重复的次数。

输出格式

输出单行,包含一个整数,表示字符串 $S^N$($S$ 重复 $N$ 次)中逆序对的数量。由于这个数字可能非常大,请输出它模 $10^9 + 7$ 的余数。

样例

输入样例 1

ba
1

输出样例 1

1

输入样例 2

ab
3

输出样例 2

3

输入样例 3

zkba
1

输出样例 3

6

输入样例 4

cab
7

输出样例 4

77

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.