题目描述

输入描述:

输出描述:

示例1
输入
2
5
1 3 1 4
5 2 0 170
1
0 0 0 1
1000000000 1000000006 1000000006 1000000007
输出
26717147
10000019
说明

题目大意
给定 n n n,则有数列 0 , 1 , . . . 0,1,... 0,1,...,其中 n i = i m o d 10 n_i=i\,mod \,10 ni=imod10。有数列 p p p和 d d d,表示对 n n n进行操作。
对于任意的 i i i,操作就是把数列 0 , 1 , … , n 0,1,\dots,n 0,1,…,n中第 p i p_i pi个修改成 d i d_i di。
现在顺序进行操作,得到 n + 1 n+1 n+1个数列(包括原数列),求将这些序列根据字典序从小到大排序后的名次的哈希值和是多少(名次从 0 0 0开始)。
注:输入给出的是一些数字,为了避免输入耗时,根据题目中的描述生成 d d d和 p p p。
分析
接下来深解题意。

如图, p p p和 d d d都已经生成,第一行为原数列,不操作。
那么根据名次

本文详细解析了Sort the Strings Revision问题,通过分治策略和RMQ(Range Minimum Query,笛卡尔树)解决数列排序及名次哈希值求和的算法。文章介绍了问题背景、分析过程,并给出了具体的分治与RMQ的实现思路。
最低0.47元/天 解锁文章
1161

被折叠的 条评论
为什么被折叠?



