SA的性質 JZOJ 100037 字尾陣列

2021-08-07 12:56:56 字數 1873 閱讀 5716

傳送門

題目給定了sa,我們很容易就會發現st

r[sa

[i]]

≤str

[sa[

i+1]

] ,所以我們現在的任務就變成了求∑i

[str

[sa[

i]]r[sa

[i+1

]]]

。可以發現,當su

ffix

[sa[

i+1]

+1]>su

ffix

[sa[

i]+1

] 時,即str

[sa[

i+1]

] 後面的字串大於st

r[sa

[i]]

後面的字串時,可以有st

r[sa

[i]]

=str

[sa[

i+1]

] 。反過來,當su

ffix

[sa[

i]+1

]≥su

ffix

[sa[

i+1]

+1]

時,一定有st

r[sa

[i]]

r[sa

[i+1

]]。其中su

ffix

[sa[

i]+1

]≥su

ffix

[sa[

i+1]

+1] 等價於 ra

nk[s

a[i]

+1]≥

rank

[sa[

i+1]

+1]

。由於我們要盡量讓字符集小,所以st

r[sa

[i]]

要盡量和st

r[sa

[i+1

]]相等,這樣,問題就轉變為求∑i

[ran

k[sa

[i]+

1]≥r

ank[

sa[i

+1]+

1]]

參考**

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

std::cin;

using

std::cout;

using

std::endl;

typedef

int int;

inline int readin()

while (ch >= '0' && ch <= '9')

if (minus) a = -a;

return a;

}const int maxn = int(1e5) + 5;

int n;

int sa[maxn];

int rank[maxn];

void run()

for(int i = 1; i <= n; i++)

rank[n + 1] = 0; //空串視為最小即可

int ans = 1;

for(int i = 1; i < n; i++)

cout

<< ans << endl;

}}int main()

做SA的感覺

在半個月前,找到了一家小公司,擔任起該公司乙個專案的sa,雖然只是兼職,卻負責了不少的東西。這樣乙個專案 汽車,船等gps系統,以及web輔助系統。包括 1.通訊伺服器,主要難點,1分鐘接收不少於20k的資料,解析,入庫。解決方案 jdk1.4 發布的nio 據說jdk7.0對nio做了改進 對資料...

向量的性質

向量性質 零向量是任何向量的線性組合,零向量與任何同維實向量正交.單個零向量線性相關 單個非零向量線性無關.部分相關,整體必相關 整體無關,部分必無關.原向量組無關,接長向量組無關 接長向量組相關,原向量組相關.兩個向量線性相關對應元素成比例 兩兩正交的非零向量組線性無關.向量組中任一向量 都是此向...

忘了SA密碼的SQL SERVER

暫時還未驗證 sql2008 如果 本地連線登入補上,也忘了sa等管理賬號的密碼,可以通過單使用者連線的方式登入 sql server 2012 其他版本 此主題尚未評級 評價此主題 在某些情況下,可能必須使用startup option m.在單使用者模式下啟動 sql server 例項。例如,...