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 ...