雅禮集訓2017Day7事情的相似度

2021-08-14 18:38:21 字數 635 閱讀 8580

bitset幫助離線合併實現o(n/w)

然後暴力就可以在n=100000時為所欲為

其實還是有點思想,

從大到小列舉height值,這樣每次涉及到的問題的答案一定是height

另外脫機會mle?

那就分兩次離唄。

沒有什麼是一次離線解決不了的,如果有,那就兩次。

//從height大到小更新可以簡化轉移,因為height的最小值一定是你當前列舉的那一隅

#include#include#include#include#include#define maxn 100005

#define maxset 60005

using namespace std;

typedef bitsetset;

int n,m;

char s[maxn],ss[maxn];

int cnt[maxn],sa[maxn],wa[maxn],wb[maxn],rk[maxn],h[maxn],ans[maxset];

bool sortcmp(const int &a,const int &b)

bool cmp(int *r,const int &a,const int &b,int l)

雅禮集訓 2017 Day7 事情的相似度

點此看題 字尾自動機亂殺。他問的是字首之間的最長字尾,我們對正串建出字尾自動機,然後把字首在自動機上面打上標記。根據字尾自動機的性質,最長字尾就是兩個字首在 tt parent tree 上 tt lca 的 len 對於乙個字首對 l,r 那麼他可以對 l leq l,r leq r 的詢問 l,...

雅禮集訓 2017 Day7 事情的相似度

text 處理了一下排版問題,以及新增 rm lct 做法。如果沒有原題測試,還不知道這道題還要被咕多久.本來就已經咕了乙個寒假了.傳送門 to loj 最長公共字尾,很難不讓人想到 tt sam 的 text 因為在 text 上有 兩個串的最長公共字尾,即為他們所代表的點在樹上的 lca 對應的...

雅禮集訓 2017 價

傳送門 乙個不太顯然的最小割做法。我們這麼連邊 源點向藥物連 infty p i 容量的邊,藥物向它對應的藥材連 infty 容量的邊,藥材向匯點連 infty 容量的邊。用源點的流量減去最小割,再負回來就可以求出答案了。怎麼理解呢?割掉一條邊表示不選其對應的藥物或藥材,我們發現最後的方案一定是完美...