如果僅僅求長度為k,使用滾動hash即可。
下面是求一段長度的本質不同串的個數。
lightoj - 1314
求字串中長度為k的本質不同串的個數。
字尾自動機中每個節點包含著一段連續長度的子串,遍歷每個節點,記乙個差分陣列即可統計長度為1~|s|的不同子串個數。
(lightoj - 1314 ac**,原題統計長度p到q的本質不同子串的個數)
#include //#include using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef unsigned int uint;
#ifdef local
#define debug(x) cout << "[" __function__ ": " #x " = " << (x) << "]\n"
#define time cout << "runingtime: " << clock() << "ms\n", 0
#else
#define time 0
#endif
#define hash_ 998244353
#define continue(x)
#define break(x)
const int mod = 1e9 + 7;
const int n = 1e4 + 10;
const int inf = 0x3f3f3f3f;
const ll linf = 0x3f3f3f3f3f3f3f3f;
#define gc p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2) ? eof : *p1++;
inline int read()
ll fpow(ll a, int b, int mod) return res; }
int len[n << 1];
int lnk[n << 1];
int cnt[n << 1];
int nxt[n << 1][26];
int idx;
int last;
int tot;
int sub[n << 1];
char s[n];
int c[n];
void init()
void clear()
void extend(int c)
} last = x;
}void solve()
}int main()
return time;
}
求字串長度
問題及 檔名稱 main.cpp 作 者 王藝霖 完成日期 2016年3月20日 版 本 號 v1.0 問題描述 寫乙個函式,求乙個字串的長度,在main函式中輸出字元,並輸出其長度 輸入描述 輸入一行字串 輸出描述 輸出字串長度 includeusing namespace std int str...
求字串長度
目的 考察對strlen函式的使用 功能 求字串長度,統計並返回字串中第乙個 0 之前的有效字元的個數,注意不包括 0 占用的位元組數。strlen函式的常規寫法。include include int main 拓展 模擬實現strlen函式,求字串長度。0 是最關鍵的部分。include inc...
求字串長度
思路分析 迴圈法 呼叫函式傳參,迴圈條件為判斷字元陣列元素是否為真,若為真,引數加1,若為假返回0 遞迴法 遞推關係 1 strlen str 1 指標加1 出口 指標指向 0 完整 define crt secure no warnings include include include incl...