BZOJ 1031 字符加密Cipher 后缀数组(计数排序)
题意:n个字符顺时针围成一圈,按开头不同,总共形成n个长度为n的字符串.
当n个字符串排序后,问这n个字符串最后一位连起来后为? |n|
知道开头位置i,(i+n-1)直接求出其最后字符.
把字符串复制一遍连起来,然后只要知道后缀i的排名即可.(后缀i长度超过n的部分比较无所谓.若比较则说明前n个字符相等.)
后缀数组的排序内容:
计数排序:a[i]排序后在第几位?
原创
2017-08-24 23:07:03 ·
242 阅读 ·
0 评论