随笔分类 - C-专题总结
摘要:简介 线性基是一种擅长处理异或问题的数据结构。设值域为$[1,N]\(,就可以用一个长度为\)\lceil \log_2N \rceil$的数组来描述一个线性基。特别地,线性基第$i$位上的数二进制下最高位也为第$i$位。 一个线性基满足,对于它所表示的所有数的集合$S$,$S$中任意多个数异或所得
阅读全文
摘要:就是把某个字符串把某个串转化成一个数,使相同的串转化成的数一定相同,不同的串转化成的数尽量不同。 最常用的是进制哈希。\(hash[i]=(hash[i-1]*p+(ll)s[i])\%mod\)(其中$p$没有要求,但一般取一个质数,如$131,13331$等;$mod$要取一个大数,最方便的就是
阅读全文
摘要:定义: \(dfn[x]\):$x$第一次被访问的时间顺序(时间戳) 搜索树:每个节点只访问一次,所有访问过的边$(x,y)$构成一棵搜索树 \(low[x]\):定义为以下节点的时间戳的最小值: $1.$$subtree(x)$中的节点。 $2.$通过$1$条不在搜索树上的边,能够到达$subtr
阅读全文
摘要:1.倍增+$\rm dfn$序 int ask(int u, int v) { if (dfn[u] > dfn[v]) swap(u, v); if (u == v) return u; for (register int i = t; i >= 0; i -- ) if (dfn[fa[v][i
阅读全文
摘要:至多与恰好 如果问恰好装$v$,则初始化$dp[]=-INF,dp[0]=0$。二维$dp$则初始化$dp[][]=-INF,dp[0][0]=0$。(这样就能是那些能够恰好装满背包的物品的值为正数,而那些不能恰好装满背包的物品的值就为负数。) 如果问至多装$v$,则初始化$dp[]=0$。 一定要
阅读全文
摘要:拓扑排序求出的一个序列满足所有有关系$(x\rightarrow)\(的节点中,**指向的\)(x)\(在前面,被指向的\)(y)$在后面**。如果完全没关系那不一定前后。 具体操作,就是先把入度为$0$的节点加入队列,然后对于队列中某个节点指向的节点$y$,它的入度减$1$。如果入度减到$0$,那
阅读全文
摘要:$Trie$树一般用于词频统计或者前缀匹配,当然还有一些高级操作。 一棵空$Trie$仅包含一个根节点。 一般是设$trie[pos][val]$,表示当前指针$pos$的$val$指针。(一定注意$val$是值,而不是枚举的下标。) 插入时,枚举$c$字符,若指针$pos$的$val$指针指向一个
阅读全文
摘要:set和multiset(常数大,慎用) \(set\)是不可重集,\(multiset\)是可重集。插入、查看、查询的复杂度都是\(O(log(n))\)的。会自动从小到大排序。 迭代器:\(set < int >:: iterator\ \ it = ...\),对应的数值为\(*it\) \(
阅读全文
摘要:数论 费马小定理: 若$p$为素数且$gcd(a,p)=1$,则$a^{p-1}\equiv1\pmod{p}$ 另一种形式:\(a^{p-2}\equiv{a}^{-1}\pmod{p}\)(即$a^{p-2}$是$a$在模$p$意义下的逆元) 这是欧拉定理的特殊情况,在此不作证明了。 欧拉定理:
阅读全文

浙公网安备 33010602011771号