[THUSC2015]解密运算 题解

source:https://www.luogu.com.cn/problem/P5794

拿几个小数据玩一玩,如BCA AC ACC(可以多找几个)

先看所有字母均不相同的情况,我们发现一个小规律:

   设加密串中 .. 的位置为 mm ,则将加密串按字典序排序后第 mm 位的字母即为解密串第 11 个字母

再想想能不能将这个规律拓展到有字母相同的情况,很容易想到将位置作为第二关键字排序,实践后发现确实成立

再次观察,我们发现解密串第1个字母与第2个字母间、第2个字母与第3个字母间......也有相同的规律,于是成功将其拓展至任意加密串


 

那么为什么会是这样的呢?我们以解密串 BCABCA 举例,其加密串为 AC.BAC.B

.BCA.BCA

A.BCA.BC

BCA.BCA.

CA.BCA.B

易知在最后一列里(即加密串中) .. 所在位置的那一行是解密串加上一个 .. ,且由于字母均不相同所以矩阵第一列便是按字典序排列的串

那么我们就知道加密串中 .. 所在位置 mm 即为矩阵的行数,即为解密串第 11 个字母在矩阵第一列中的位置,即为解密串第 11 个字母在按字典序排列后的串中的位置

由此得证我们的“小规律”

 

posted @ 2020-11-26 21:38  aerovnane  阅读(160)  评论(0)    收藏  举报