bzoj 1031 字元加密Cipher

2021-07-05 01:11:38 字數 802 閱讀 8505

題意:

給出乙個字串,求將其所有迴圈串排序之後,每個串的最後乙個字元;

字串長度<=100000;

題解:

字尾陣列裸題。。吧

學長拿這個當例題我還差點不會做。。。

反正就是把字串倍增之後求字尾陣列;

然後按字尾陣列來掃一遍求解;

難點就是字尾排序(廢話!);

這裡用的是o(nlogn)的倍增+基數排序方法;

模板純手寫。。一堆for迴圈也是有毒。。

原理上就是利用倍增的思想,將每次的排序轉化為二元組的排序問題;

而二元組的排序問題可以利用基數排序o(n)解決而已;

寫**的時候好費勁啊。。。碼力果然不夠強;

30行模板4陣列,orz popoqqq 60行sa;

**:

#include#include#include#define n 210000

#define s 256

using namespace std;

char str[n];

int rank[n],tr[n],hash[n],sa[n];

int main()

for(i=0;i>1))

printf("%c",str[sa[i]+(n>>1)-1]);

} return 0;

}

BZOJ1031 字元加密Cipher

被wsh大爺拉入坑,然而我會說他現在在睡覺?題意 求乙個迴圈同構的字串的按字典序排序後末尾的字元的序列 颯颯颯我們把這個字串粘 nian 兩遍,然後颯颯颯就好啦 可以這麼輕易是因為對於乙個倍長後的字串,如果我們不能僅按前n位就將這個字串排序,當且僅當這個字串的某些字尾的完全相同,然而這樣就算不排序也...

BZOJ1031 JSOI2007 字元加密

喜歡鑽研問題的js同學,最近又迷上了對加密方法的思考。一天,他突然想出了一種他認為是終極的加密辦法 把需要加密的資訊排成一圈,顯然,它們有很多種不同的讀法。例如下圖,可以讀作 jsoi07 soi07j oi07js i07jso 07jsoi 7jsoi0把它們按照字串的大小排序 07jsoi 7...

提高專案27 1 字元加密

任務和 小明請你寫乙個程式,在給小麗寫情書時,再不用費功夫自己 翻譯 原信中每乙個字元加密為其後的第4個字元。例,輸入i love u,輸出m pszi y。檔名 main.c 完成日期 2016.7.7 問題描述 小明請你寫乙個程式,在給小麗寫情書時,再不用費功夫自己 翻譯 原信中每乙個字元加密為...