文文殿下 51nod1469 淋漓盡致子串

2022-05-19 05:32:53 字數 807 閱讀 7196

sam的經典應用

乙個狀態的size==1絕對不合法。

乙個狀態在parent樹上有乙個size>1的後繼絕對不合法(前面可以再補字元)

乙個狀態可以轉移到size>1的節點絕對不合法,因為可以在後面補字元。

#include#include#includetypedef long long ll;

const int maxn = 2e5+20;

int par[maxn],mx[maxn],tr[maxn][26],right[maxn],c[maxn],id[maxn];

char a[maxn>>1];

int tot=0;

int cnt = 1,last = 1;

ll ans = 0;

void extend(int x)

else

} return;

}int n,k,t;

inline void topsort()

bool vis[maxn];

int main()

for(int i = 1;i<=cnt;++i) if(right[i]<=1) vis[i]=1;

for(int i = 1;i<=cnt;++i) for(int j = 0;j<26;++j) if(right[tr[i][j]]>1) vis[i]=1;

for(int i = 2;i<=cnt;++i) if(!vis[i]) ++ans;

printf("%lld\n",ans);

return 0;

}

51nod 1009 數字1的數量

1009 數字1的數量 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 收藏 關注 給定乙個十進位制正整數n,寫下從1開始,到n的所有正數,計算出其中出現所有1的個數。例如 n 12,包含了5個1。1,10,12共包含3個1,11包含2個1,總共5個1。input ...

51 nod 1009 數字1的數量

1009 數字1的數量 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 收藏 關注 給定乙個十進位制正整數n,寫下從1開始,到n的所有正數,計算出其中出現所有1的個數。例如 n 12,包含了5個1。1,10,12共包含3個1,11包含2個1,總共5個1。input ...

51nod 1009 數字1的數量

1009 數字1的數量 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 給定乙個十進位制正整數n,寫下從1開始,到n的所有正數,計算出其中出現所有1的個數。例如 n 12,包含了5個1。1,10,12共包含3個1,11包含2個1,總共5個1。input 輸入n 1 ...