2020牛客多校第一場 A題

2021-10-08 13:48:05 字數 1421 閱讀 4002

題意: 給乙個字串,求出按函式的方法得到的b,b的所有以pi為起點的字尾按字典序排序。得到pi的序列。

思路:找字尾陣列c(找到第i個後面與它相同字元的距離),可以證明b陣列與c陣列對應的字尾字典序是相反的。求c陣列的時候有些操作也在下面位址裡。

上面兩個的位址 : 大佬位址

找出每個字尾陣列後,排序就可以了,直接sort排序,比較會超時。所以用manber和myers發明的演算法,最後反著輸出。

o(nlogn) 挑戰程式設計競賽(第一版)378頁有講

我的**:

#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

#include

#define int long long

using

namespace std;

typedef pair<

int,

int> pii;

typedef

long

long ll;

const

int inf =

0x3f3f3f3f

;const

double eps =

1e-4

;const

int mod =

1e9+7;

const

int n =

100010

;int n,c[n]

,sa[n]

,tmp[n]

,ran[n]

,k;char s[n]

;bool

cmp(

int i,

int j)

void

get_sa()

for(k =

1;k <= n+

1;k <<=1)

}void

get_c()

else

} c[n]

= n+1;

}signed

main()

return0;

}

2020 牛客多校第一場

a b suffix array f infinite string comparision jzk開場提出了兩倍最大的長度,然後 dh 說直接比較a b和b a即可,由於是訓練賽,不想寫太長的 然後交了一發直接比較的 就過了 includeusing namespace std string s1...

2020牛客暑假多校 第一場 E,J

本題相當於比較 a b 與 b a 這裡簡要證明一下,以樣例的第三組資料為例子。a aba b abaa a b abaabaa b a abaaaba 很清楚地發現,a b b a,這樣怎麼推出a b呢,我們一步步看,首先a 0 b 0 a 1 b 1 a 2 b 2 說明a的所有元素與b的前三個...

牛客寒假多校第一場A

題目描述 在絕地求生 吃雞 遊戲裡,不同的槍枝有不同的威力,更是可以搭配不同的配件,以提公升槍枝的效能。每一把槍都有其威力及其可裝備配件種類。每乙個配件有其所屬種類,可以為槍枝提供威力的百分比加成。每一把槍只能裝備乙個同類配件。給你n把槍枝和m個配件,槍的威力為p,可裝備的配件數量為k,為k個不同型...