素数线性筛、欧拉函数线性筛
摘要:这俩算法,可以在线性时间内,筛素数的同时,求出所有数的欧拉函数。 参考博客: 素数线性筛原理:https://www.cnblogs.com/xiaodeshan/p/7811344.html 素数线性筛代码实现:https://blog.csdn.net/litoupu/article/detai
阅读全文
posted @
2018-09-12 13:45
_isolated
阅读(161)
推荐(0)
线段树
摘要:总原理: 将[1,n]分解成若干特定的子区间(数量不超过4*n) 用线段树对“编号连续”的一些点,进行修改或者统计操作,修改和统计的复杂度都是O(log2(n)) 用线段树统计的东西,必须符合区间加法,(也就是说,如果已知左右两子树的全部信息,比如要能够推出父节点);否则,不可能通过分成的子区间来得
阅读全文
posted @
2018-05-19 00:43
_isolated
阅读(12115)
推荐(8)
tire树(字典树) 模板
摘要:经典问题: 看以下几个题: 1、给出n个单词和m个询问,每次询问一个单词,回答这个单词是否在单词表中出现过。 答:简单!map,短小精悍。 好。下一个 2、给出n个单词和m个询问,每次询问一个前缀,回答询问是多少个单词的前缀。 答:map,把每个单词拆开。 judge:n<=200000,TLE!
阅读全文
posted @
2018-05-18 20:52
_isolated
阅读(500)
推荐(0)
树状数组
摘要:一、模板 默认预设: a[maxn] ———原始数组 c[maxn] ———新建的树状数组。对于任意一个位置 i ,树状数组 c[i] 里的值就是"它能管理到的所有位置上,原数组的值之和"。 基本函数一:lowbit x+lowbit(x),就可访问到x的上一级父节点; 基本函数二:upgrade
阅读全文
posted @
2018-04-23 16:14
_isolated
BFS模板(邻接矩阵版本)
摘要:BFS的大体结构: 一、预处理: 1:首先,需要定义一个:用来表示单位结点的struct结构体 思考一下,为了表示某个点上的状态,我需要记录什么? ——首先肯定有位置(思考思考,这里位置使用二维坐标表示,还是用一维坐标表示??) 2:考虑一下,需不需要一个vis数组,来避免重复搜索? 3:定义一个,
阅读全文
posted @
2018-04-22 15:51
_isolated
阅读(510)
推荐(0)