原題位址:
題意:
小敏和小燕是一對好朋友。
他們正在玩一種神奇的遊戲,叫minecraft。
他們現在要做乙個由方塊構成的長條工藝品。但是方塊現在是亂的,而且由於機器的要求,他們只能做到把這個工藝品最左邊的方塊放到最右邊。
他們想,在僅這乙個操作下,最漂亮的工藝品能多漂亮。
兩個工藝品美觀的比較方法是,從頭開始比較,如果第i個位置上方塊不一樣那麼誰的瑕疵度小,那麼誰就更漂亮,如果一樣那麼繼續比較第i+1個方塊。如果全都一樣,那麼這兩個工藝品就一樣漂亮。
資料範圍
n<=300000
題解:
求乙個字串的最小表示。
把s複製一遍接在後面,對於這個新串建立sam,
於是從root開始走len次就是那個最小表示。
字符集很大用map。
等學了最小表示法再來upd一發。
**:
#include
#include
#include
#include
#include
using
namespace
std;
const
int n=600005;
struct node
tr[2*n+100];
int s[n],n,root=0,last=0,tail=0,tmp;
void add(int c)
}last=nd;
}void getans()
}int main()
bzoj 2882 工藝 (字尾自動機 map)
time limit 10 sec memory limit 128 mb submit 596 solved 266 submit status discuss 小敏和小燕是一對好朋友。他們正在玩一種神奇的遊戲,叫minecraft。他們現在要做乙個由方塊構成的長條工藝品。但是方塊現在是亂的,而且...
BZOJ 2882 工藝 字尾自動機 map
小敏和小燕是一對好朋友。他們正在玩一種神奇的遊戲,叫minecraft。他們現在要做乙個由方塊構成的長條工藝品。但是方塊現在是亂的,而且由於機器的要求,他們只能做到把這個工藝品最左邊的方塊放到最右邊。他們想,在僅這乙個操作下,最漂亮的工藝品能多漂亮。兩個工藝品美觀的比較方法是,從頭開始比較,如果第i...
BZOJ 2882 工藝 字尾自動機 map
小敏和小燕是一對好朋友。他們正在玩一種神奇的遊戲,叫minecraft。他們現在要做乙個由方塊構成的長條工藝品。但是方塊現在是亂的,而且由於機器的要求,他們只能做到把這個工藝品最左邊的方塊放到最右邊。他們想,在僅這乙個操作下,最漂亮的工藝品能多漂亮。兩個工藝品美觀的比較方法是,從頭開始比較,如果第i...