{"trustable":true,"prependHtml":"\u003cstyle type\u003d\"text/css\"\u003e\n #problem-body \u003e pre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333;\n background: rgba(255, 255, 255, 0.5);\n border: 1px solid #ccc;\n border-radius: 6px;\n }\n\u003c/style\u003e\n","sections":[{"title":"","value":{"format":"HTML","content":"\u003cdiv id\u003d\"problem-body\"\u003e\n\t\u003cp\u003e给定一个长度不超过100,000的字符串,由字母和数字组成。输出该字符串的后缀数组。\u003c/p\u003e\n\u003cp\u003e一个\u003ca href\u003d\"//zh.wikipedia.org/wiki/%E5%90%8E%E7%BC%80%E6%95%B0%E7%BB%84\"\u003e后缀数组\u003c/a\u003e是一个整数数组,按照词典顺序给出字符串的后缀的起始位置(从0开始)。考虑一个字符串\"abracadabra0AbRa4Cad14abra\"。后缀数组的大小等于字符串的长度。下面是该字符串的26个后缀及其起始位置按词典顺序排序的列表:\u003c/p\u003e\n\u003cpre\u003e\u003cstrong\u003e\u003cspan style\u003d\"font-family: \u0027courier new\u0027, courier; font-size:12px\"\u003ePOS SUFFIX\u003c/span\u003e\u003c/strong\u003e\u003cspan style\u003d\"font-family: \u0027courier new\u0027, courier; font-size:12px\"\u003e\r\n 11 0AbRa4Cad14abra\r\n 20 14abra\r\n 16 4Cad14abra\r\n 21 4abra\r\n 12 AbRa4Cad14abra\r\n 17 Cad14abra\r\n 14 Ra4Cad14abra\r\n 25 a\r\n 10 a0AbRa4Cad14abra\r\n 15 a4Cad14abra\r\n 22 abra\r\n 7 abra0AbRa4Cad14abra\r\n 0 abracadabra0AbRa4Cad14abra\r\n 3 acadabra0AbRa4Cad14abra\r\n 18 ad14abra\r\n 5 adabra0AbRa4Cad14abra\r\n 13 bRa4Cad14abra\r\n 23 bra\r\n 8 bra0AbRa4Cad14abra\r\n 1 bracadabra0AbRa4Cad14abra\r\n 4 cadabra0AbRa4Cad14abra\r\n 19 d14abra\r\n 6 dabra0AbRa4Cad14abra\r\n 24 ra\r\n 9 ra0AbRa4Cad14abra\r\n 2 racadabra0AbRa4Cad14abra\u003c/span\u003e\r\n\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003e注意\u003c/strong\u003e:这是一个部分分数问题。\u003cbr\u003e预计O(n\u003csup\u003e2\u003c/sup\u003e log(n))得分约为20-30。(朴素地对所有后缀进行排序)\u003cbr\u003e预计O(n log\u003csup\u003e2\u003c/sup\u003e(n))得分约为40。(对大多数编程竞赛问题来说是可以接受的)\u003cbr\u003e预计O(n log n)得分约为60-70。(对于小字母表大小使用计数排序)\u003cbr\u003e预计未经调整的O(n)得分约为80-90。\u003cbr\u003e预计经过调整的O(n)得分为100。(这只是为了好玩 :)\u003c/p\u003e\n\u003ch3\u003e输入\u003c/h3\u003e\n\u003cp\u003e包含字符串的单行。\u003c/p\u003e\n\u003ch3\u003e输出\u003c/h3\u003e\n\u003cp\u003e字符串的后缀数组。\u003c/p\u003e\n\u003ch3\u003e示例\u003c/h3\u003e\n\u003cdiv\u003e\u003ctable class\u003d\"vjudge_sample\"\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003eabracadabra0AbRa4Cad14abra\r\n\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e11\r\n20\r\n16\r\n21\r\n12\r\n17\r\n14\r\n25\r\n10\r\n15\r\n22\r\n7\r\n0\r\n3\r\n18\r\n5\r\n13\r\n23\r\n8\r\n1\r\n4\r\n19\r\n6\r\n24\r\n9\r\n2\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e"}}]}