上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页
摘要: 可以用Matrix-Tree定理,然而被卡精度 1 #include<cstdio> 2 #include<cstdlib> 3 #include<algorithm> 4 #include<cstring> 5 #include<iostream> 6 #define MAXN 100+10 7 阅读全文
posted @ 2017-12-18 00:22 white_hat_hacker 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 后缀数组height+二分 阅读全文
posted @ 2017-12-14 01:29 white_hat_hacker 阅读(140) 评论(0) 推荐(0) 编辑
摘要: Description 物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转 停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种 因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货 阅读全文
posted @ 2017-12-06 23:34 white_hat_hacker 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 随机生成一个字符可以看成在AC自动机里面向前走一个节点,那么ans就是0向前走L步并且不经过单词节点, 由概率知识可得,f[p][L]=∑f[nxt[p][i]][L-1]*g[i] 其中p表示位于p节点,还要走L步,边界是f[p][0]=1.0,可以用记忆化搜索 非常巧妙的做法 阅读全文
posted @ 2017-11-30 00:12 white_hat_hacker 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 用KMP里面的next数组即可,原理就是next数组的原理 阅读全文
posted @ 2017-11-27 14:01 white_hat_hacker 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 字典树问题 对于普通的字典树,可以加一个vector数组记录非空的孩子,加快速度 还可以用左孩子右兄弟来节省空间,因为普通的trie的话是 int next[MAXN][26] 而左孩子右兄弟可以把[26]省掉,这题实际上并不需要这么节省也可以AC 1 #include<cstdio> 2 #inc 阅读全文
posted @ 2017-11-27 01:36 white_hat_hacker 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 发现字典里面的单词数目多且长度短,可以用字典树保存 f[i]表示s[i~L]的分割方式,则有f[i]=∑f[i+len(word[j])] 其中word[j]为s[i~L]的前缀 注意字典树又叫前缀树,所以用前缀更方便,否则按顺序dp的话就要把字符倒序了 复杂度O(L*l) L为字符串长度,l为单词 阅读全文
posted @ 2017-11-26 12:22 white_hat_hacker 阅读(142) 评论(0) 推荐(0) 编辑
摘要: struct Trie{ Trie* nxt[26]; int v; Trie(){ for(int i=0;inxt[t]){ p=p->nxt[t]; } else{ p->nxt[t]=new Trie; p... 阅读全文
posted @ 2017-11-26 11:44 white_hat_hacker 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 线段树,注意tag优先级 阅读全文
posted @ 2017-11-25 19:48 white_hat_hacker 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 优美的线段树 阅读全文
posted @ 2017-11-25 18:57 white_hat_hacker 阅读(182) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页