摘要:
震惊!某OIer竟使用$O(n^2)$筛法长达1年! 原来筛欧拉函数是和筛素数差不多的,一个埃氏筛法,一个线性筛... 要实现线性筛,必须先明确欧拉函数的以下性质: 设$p$为素数,则有 $\varphi(p) = p 1$ $如果i与p互质, 那么 \varphi(i p) = \varphi(i 阅读全文
摘要:
#title1# ##title2## ###title3### ctrl-i ctrl-b del under 0.0 0.0 0.0 0.0 0.0 0.0 qwq qwq $1+1=2$ $$1+2=3$$ \(\color{#4B0082}{Just}\) \(\color{#9932CC} 阅读全文
摘要:
"$gate$" $\color{ A4A4A4}{谢谢好哥哥帮我写的markdown,哭了}$ $exkmp$,也称$z−algorithm$ 是用来求一个字符串的每个后缀与原串的LCP,即字符串中后缀=前缀的长度。 表示以第i位为开头的后缀与前缀相等的最大长度。 例如字符串 ,可求出它的z函数为 阅读全文
摘要:
gate 好像没发过manacher的板子,反正有现成的 简单介绍一下: manacher是用来求回文串的算法,它最后可以得到一个数组r[i],表示以i为中心的最长回文串半径为r[i]。 但是,回文串可能会有abba、abcba两种形式,当长度为偶数时,不好确定中心点。 所以,在字符间加入特殊符号, 阅读全文
摘要:
gate 当一个数列满足,但它的1,2项不是1,1时, 称它为类斐波那契数列。 它满足以下性质: 若有: 1.设,则 2. 证明: 设,则 3.前缀和公式: 证明: 通过以上性质,发现它可以用线段树维护。 对于每个节点,$sum$表示区间和; $c1$,$c2$表示这段区间被加上了前两项分别为$c1 阅读全文
摘要:
gate 我回来了... 本来是应该12月发的blog,没想到拖到了现在,注意事项什么的稍微有点忘了,以后再慢慢补充吧 点分治是一种树上算法。顾名思义,就是对每个点进行分治,计算它的子树对答案的贡献。 主要用于处理树上路径,且一个点会被统计多次的问题。 以这道题为例: 询问树上距离为k的点对是否存在 阅读全文
摘要:
gate 保证有欧拉回路,输出路径 这道题的话是字典序,实现的时候从1到n枚举就好了,先不管它qwq 找到度数为奇数的的点作为起点(没有的话就任意一个), dfs,回溯时把点压进栈。 为什么不能遍跑dfs边压?考虑这张图: 边跑边压的结果是1,2,3,2,4,5,而正解(回溯)是1,2,4,5,2, 阅读全文
摘要:
gate tarjan判环,若一对夫妻在同一scc中则不稳定。 构造成有向图, 当前婚姻状况 女→男 连边,曾经交往的 男→女 连边。 代码如下 #include<cstdio> #include<iostream> #include<cmath> #include<cstring> #includ 阅读全文
摘要:
gate 背包。 设f[i]为构成重量i的方案数。 则:f[i] = f[i]+f[i-c[i]] 每次更新,记录f[i]是由哪个张牌转移过来的,为pre[i] 为了防止重复(为什么会重复?),仅在当前pre[i]不存在时更新。 且只能从不为0的状态转移过来。 最后判断f[m], 大于1则多解,小于 阅读全文
摘要:
gate 贪心,按(距离+时间)排序。 走一个选一个,若i的距离+(1-i)的时间 > m则不能选了。 记得开long long! 代码如下 #include<cstdio> #include<iostream> #include<cmath> #include<cstring> #include< 阅读全文