洛谷4051 JSOI2007 字元加密(SA)

2021-09-02 23:32:50 字數 999 閱讀 7190

題目鏈結

真是一道良好的sa模板題

首先,由於涉及到從左邊移動到右邊這個過程,我們不妨直接把字串複製一遍,接在後面。

然後直接構造字尾陣列,按排名從小到大,列舉所有的位置,如果這個字尾的起始點是在原串中的,那麼就輸出當前字尾的七十點往後第n個字元,就能直接解決了

#include

#include

#include

#include

#include

#include

#include

#include

#define mk makr_pair

#define ll long long

using namespace std;

inline

intread()

while

(isdigit

(ch)

)return x*f;

}const

int maxn =

2e6+

1e2;

int rk[maxn]

,wb[maxn]

,sa[maxn]

;int tmp[maxn]

,h[maxn]

,height[maxn]

;int n;

char a[maxn]

;void

getsa()

s=p;

}for

(int i=

1;i<=n;i++

) rk[sa[i]

]=i;

h[0]=

0;for(

int i=

1;i<=n;i++

)for

(int i=

1;i<=n;i++

) height[i]

=h[sa[i]];

}int

main()

return0;

}

P4051 JSOI2007 字元加密

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

P4051 JSOI2007 字元加密 字尾陣列

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

洛谷P4049 JSOI2007 合金

某公司加工一種由鐵 鋁 錫組成的合金。他們的工作很簡單。首先進口一些鐵鋁錫合金原材料,不同種類的原材料中鐵鋁錫的比重不同。然後,將每種原材料取出一定量,經過融解 混合,得到新的合金。新的合金的鐵鋁錫比重為使用者所需要的比重。現在,使用者給出了 n 種他們需要的合金,以及每種合金中鐵鋁錫的比重。公司希...