随笔分类 - 基础算法——哈希
摘要:Contest Page A sol 每次选最小的,然后把它的所有倍数都删掉。 #include<bits/stdc++.h> using namespace std; int read(){ int a = 0; char c = getchar(); bool f = 0; while(!isd
阅读全文
摘要:"传送门" orz ymd 考虑构造生成函数:设$F(x) = \sum\limits_{i=0}^\infty f_ix^i$,其中$f_i$表示答案为$i$的概率;又设$G(x) = \sum\limits_{i=0}^\infty g_ix^i$,其中$g_i$表示经过了$i$步之后还没有结束
阅读全文
摘要:"整数" (线段树) 不难想到按位处理,位数比较多考虑使用动态开点线段树维护大数,那么复杂度是$O(nlog^2n)$的,不够优秀。 但注意到我们需要支持的是二进制下的加减法,而在二进制下我们可以使用int压位来节约时空,于是使用unsigned int压32位,再用线段树维护。这样每一次加减都只会
阅读全文
摘要:HNOI2014 "世界树" (虚树、倍增) $\sum M \leq 3 \times 10^5$虚树没得跑 对于所有重要点和它们的$LCA$建立虚树,然后计算出每一个虚树上的点被哪个重要点控制。注意这里不仅要从父亲向儿子DFS一次,还要从儿子向父亲DFS一次,因为有可能某些重要点向上控制一些点。
阅读全文
摘要:"传送门" 暴力枚举$0$的长度,如果对应的$1$的长度也是一个整数就去check是否合法。check使用字符串哈希。 复杂度看起来是$O(st)$的,但是因为$01$两个数中数量较多的至少有$\frac{|s|}{2}$个,那么最多有$\frac{2|t|}{|s|}$个可能的答案,而每一次che
阅读全文

浙公网安备 33010602011771号