模板总结归纳: vector <int> kmp(string pattern, string text){ int n = pattern.size(); vector <int> next(n + 1, 0); for(int i = 1; i < n; i++){ int j = 1; while(j > 0){ j = next[j]; if(pattern[j] == pattern[i]){ next[i + 1] = j + 1; break; } } } vect…

2018年4月27日 0条评论 3点热度 阅读全文

模板总结归纳: //拓扑排序 //O(|V| + |E|) const int maxn = 1e5+5; vector <int> g[maxn]; int du[maxn], n, m, L[maxn]; // L储存拓扑排序结果 bool topsort(){ memset(du, 0, sizeof(du)); for(int i = 0; i < n; i++) for(int j = 0; j < g[i].size(); j++) du[g[i][j]]++; int tot …

2018年4月26日 0条评论 3点热度 阅读全文