
模板算法
Felix-Lee
北有玄武盾,南有雀攻法,东有青龙唾,西有虎焰击,中有沙婆星,层层设备,步步为营。
展开
-
c++ 二分查找的函数 lower_bound & upper_bound & binary_search
简介C++ STL 中二分查找函数主要有这三种:lower_bound()upper_bound()binary_search()这三个函数都运用于有序区间。用法1. lower_bound(a+1,a+1+n,x)-a返回一个非递减序列 [1,n][1, n] 中的第一个大于等于值 xx 的位置 (int)(int)。程序相当于:int lower_bound(){ int l=原创 2016-12-24 16:09:44 · 919 阅读 · 0 评论 -
积性函数与Dirichlet卷积 学习小记
前言首先感谢 XHM 大佬的悉心指导,我懂得了不少~。链一下他关于这方面的见解、博客——XHM 的Dirichlet卷积 学习小记一些定义回归正题,这次我学习了一下狄利克雷卷积方面的知识。先给一波定义:(这里也感谢 skywalkert大佬的精心讲解)数论函数的定义若 f(n)f(n)f(n) 的定义域为 正整数域,值域为 复数,即 f:Z+→Cf:Z+→...原创 2018-04-19 17:04:25 · 1589 阅读 · 0 评论 -
C++ 读入优化与输出优化 模板
简介C++ 是一种神奇的编程语言……自然,读入和输出也有着许多种形式:如:scanf(),cin>>,cout<<,printf()scanf(),cin>>,cout<<,printf() 等但是我们奉行——效率第一!!!那么如何提高读入和输出的效率呢?用法1. 读入优化C++中有一个函数:getchar() ,用于读入字符,那么这跟读入整数有什么关系呢?其实,经过类似高精度的处理原创 2017-01-13 22:23:37 · 20496 阅读 · 13 评论 -
Manacher 算法模板
简介在字符串的题目中,有时会遇上 回文串 这样一个名词顾名思义,回文串 就是 正读和反读都一样的字符串而 最长回文子串 ,就是在一个字符串的所有子串中,是回文串且长度最长的那个求最长回文子串最普通的方法是 O(N2)O(N^2) ,即枚举一个点往两边扩展但是在有些题目中,N 却十分的大那么我们就要用到 时间空间复杂度都是 O(N)O(N) 的 Manecher 算法用法在处理回文串时原创 2017-01-11 20:22:52 · 941 阅读 · 0 评论 -
Hdu 2222 . Keywords Search
hdu 2222.Keywords Search Problem DescriptionIn the modern time, Search engine came into the life of everybody like Google, Baidu, etc. Wiskey also wants to bring this feature to his image原创 2017-06-26 21:21:55 · 416 阅读 · 0 评论 -
O(N) 求 1~N 逆元 模板及证明
O(N) 求 1~N 逆元 模板及证明 Solutioninv[i]=(mo−mo / i)∗inv[mo % i] % moinv[i] = (mo-mo\ /\ i ) * inv[mo\ \%\ i]\ \%\ mo证明:设 t=mo / it=mo\ /\ i ,k=mo % ik=mo\ \%\ i ,则有:t∗i+k≡0 (mod mo)t*i+k≡原创 2017-11-02 16:44:24 · 9726 阅读 · 0 评论 -
C++ 手动开O2优化
O2优化能使程序的编译效率大大提升从而减少程序的运行时间,达到优化的效果。C++程序中的O2开关如下所示:#pragma GCC optimize(2)只需将这句话放到程序的开头即可打开O2优化开关。原创 2017-09-02 19:45:47 · 57191 阅读 · 7 评论 -
树链剖分详解
树链剖分详解简介树链剖分,一种对树进行划分的算法,它先通过轻重边剖分将树分为多条链。保证每个点属于且只属于一条链,然后再通过数据结构(树状数组、SBT、SPLAY、线段树等)来维护每一条链。它能巧妙地将树上信息映射到线性结构上(如套用线段树),应用广泛。接下来,我们通过一个问题来探究树链剖分算法。详解【问题】在一棵树上进行路径的修改、求极值、求和【探究】暴力计算固然可行原创 2017-04-08 16:07:21 · 3631 阅读 · 0 评论 -
POJ 2104 . K-th Number
POJ 2104 . K-th Number DescriptionYou are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure t原创 2017-06-27 21:31:52 · 442 阅读 · 0 评论 -
单源最短路 SPFA 算法模板
简介在图论中,最短路是十分重要的一部分,在很多问题中都有涉及而现在所讲的 SPFA 算法是十分优秀的算法,时间复杂度为 O(k∗E)O(k*E)其中 EE 是图的边数,而 kk 是一个常数,一般极小。事实上 SPFA 就是在 Bellman-ford 算法的基础上加上一个队列优化,减少了冗余的松弛操作,是一种高效的最短路算法。而且 SPFA 还能判负环,这种情况下类似 Dijkstra 算原创 2017-01-15 22:08:17 · 1038 阅读 · 0 评论 -
线性筛法 与 线性求欧拉函数 的计算模板
简介懂得如何快速计算质数是十分重要的在筛法的基础上,我们可以使用更为高级的线性筛法!顾名思义,就是时间复杂度是线性的,即 O(N)O(N) ,N 为所求的质数范围而对编程有所接触的人,应该都知道欧拉函数 即 φ(N)φ(N)听起来高大上,其实就表示 小于等于 N 的数中与 N 互质的数的数目这在竞赛中用处很大,变式也很多—— ~不明觉厉~那么如何在 线性时间 内求出 1—N1—N 中的原创 2017-01-04 20:20:40 · 924 阅读 · 0 评论 -
C++ 40行超级加速命令
开眼界了。。。原文地址:40行加速头文件:https://www.cnblogs.com/Yuhuger/p/9280598.html40行Code#pragma GCC optimize(3)#pragma GCC target("avx")#pragma GCC optimize("Ofast")#pragma GCC optimize("inline")#pragma GC...原创 2019-03-07 17:01:54 · 3614 阅读 · 0 评论