![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法模板
卖炫迈的小男孩
随缘记录心得,请多指教~
展开
-
求一个数n的因子数和n^2因子数[数论]
正经目录求一个数的因子数一、求一个数n的因子数-暴力枚举法(Osqrt(n))二、n平方的因子数-数论三、HDU1299例题引入求一个数的因子数一、求一个数n的因子数-暴力枚举法(Osqrt(n))求n的所有因子数,我们只需要枚举到sqrt(n)即可**。唯一分解定理:任何一个正整数都可以素因式分解为==n = p1 ^e1^ * p2^e2^ * ...... * pr^er^; (其中pr是< n 的素数)====n的因子个数为:(e1+1)* (e2+1) * ……* (er+1)=原创 2020-04-08 00:58:38 · 1278 阅读 · 0 评论 -
并查集
#include<bits/stdc++.h>using namespace std;int f[100001];int flag=0;int getf(int v){ if(f[v]==v) { return v; } else { if(flag==-1){//注.原创 2019-03-26 13:21:33 · 136 阅读 · 0 评论 -
乘法逆元3种方法总结[最全]
若ax≡1 mod f, 则称a关于1模f的乘法逆元为x。也可表示为ax≡1(mod f)。当a与f互素时,a关于模f的乘法逆元有解。如果不互素,则无解,但是有其他方法实现相同功能。如果f为素数,则从1到f-1的任意数都与f互素,即在1到f-1之间都恰好有一个关于模f的乘法逆元本文讲详细解释:什么是逆元,为什么要求逆元?扩展欧几里得算法讲解;求逆元的三种方法;了解基本知识后,我们来求逆元:求逆元分为两类:==**2.a p 互质时:**===1.a p 不互质时逆元无解==可用此公式实现相同功能:原创 2019-05-14 23:11:39 · 7688 阅读 · 0 评论 -
2019牛客暑期多校训练营(第九场)B (解二次剩余方程)
解二次剩余方程 q2≡a(modp):百度词条:二次剩余当存在某个式子成立时,称“d是模p的二次剩余”一.判断二次剩余方程是否有解。欧拉准则:(判断二次剩余方程是否有解)若是p奇质数且不能整除d,则:d是模p的二次剩余当且仅当:是d模p的非二次剩余当且仅当:以勒让德符号表示,即为:二.通过已知条件和欧拉准则化简用扩展欧几里得算法解原创 2019-08-29 01:42:26 · 200 阅读 · 0 评论 -
C++快速读入法和ios::sync_with_stdio(false);
有时候我们会遇到“由于输入量很大,请使用快速输入法”之类的。输入还要用快速的?是不是把平时我们使用的cin换成scanf?不!还要更快!getchar();读取一个字符的getchar();这个比cin和scanf的读入还要快!直接给出模板:一般情况下把`cin`改成`scanf`都是可以过的,如果希望较小的功夫实现scanf和cin的等效可以在程序开头加一句:`ios::sync_with_stdio(false);`但是需要注意此时`cin`和`scanf`不能混用,否则程序可能会出错。原创 2020-03-07 17:29:21 · 1050 阅读 · 0 评论 -
可持久化01字典树解析和模板
一、可持久数据结构主要指的是我们可以查询历史版本**的情况并支持插入,利用使用之前历史版本的数据结构来减少对空间的消耗**(能够对历史进行修改的是函数式)。引用于https://www.cnblogs.com/BLADEVIL/p/3681291.html其实就是我们的数据结构的内容会不断发生变化,而我们还要查询以前的历史版本,比如某个区间的情况。**三、思路:**我们**要维护的是的异或和s[]并在==任意区间内找到s[p]使之与(s[n]^x)取得最大异或值==**,——异或+区间求异或最原创 2020-03-04 18:03:15 · 727 阅读 · 1 评论 -
01字典树解析与模板
本文将解答:1.01字典树是什么2.01字典树用途3.01字典树实现代码4.每个数按位插入顺序一、01字典树是什么首先我们都知道普通字典树(不懂?忘记了?点这里 ),字典树是插入字符串,利用字符串的公共前缀来减少查找时间,01字典树其实就是按位插入数字(将数字转化为2进制串),所谓“按位”即将该数字按2进制拆分为每一位是0或1的数字。二、01字典树的用处01字典树一般都是用于求异或...原创 2020-03-04 01:53:47 · 382 阅读 · 0 评论 -
字典树解析与模板C++
字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。它有3个基本性质:根节点不包含字符,除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符连接起来,...原创 2020-03-03 03:10:39 · 653 阅读 · 0 评论 -
Tarjan算法、Tarjan缩点模板+视频讲解+例题
P3387 【模板】缩点题目背景缩点+DP题目描述给定一个 nn 个点 mm 条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大。你只需要求出这个权值和。允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次。输入格式第一行两个正整数 n,m第二行 n 个整数,依次代表点权第三至 m+2 行,每行两个整数 u,vu,v,表示一条 u→v 的有向边。输...原创 2020-02-19 03:51:51 · 608 阅读 · 0 评论 -
逆序对模板
P1908 逆序对猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aj且i<j的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。Update:数据已加强。输入...原创 2019-12-23 00:30:00 · 286 阅读 · 0 评论 -
线段树模板
P3372 【模板】线段树 1题目描述如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数加上x2.求出某区间每一个数的和输入格式第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含3或4个整数,表示一个操作,具体如下:操作1: 格式:1 x y k 含义:将区间[x...原创 2019-12-23 00:31:33 · 189 阅读 · 0 评论 -
树状数组模板
首先对于追求编码简单快捷的同学来说,比如ACM。树状数组可以实现的线段树都能实现。树状数组是动态维护前缀和的工具树状数组:1.单点修改,单点查询2.区间修改,单点查询3.单点修改,区间查询这三种我们使用树状数组比线段树敲起来简单,似乎还更快。至于其他,就敲线段树吧那么修改指什么呢?比如给某个数加上一个数,或者给某个区间(要结合差分数组)加上一个数查询又可以是什么呢?比如查询某个点的前缀和,进而到区间求和。至于...原创 2019-11-25 00:53:13 · 248 阅读 · 0 评论 -
拓扑排序模板C++和例题
拓扑排序超级详解易懂拓扑排序补充拓扑排序还可以找出有向图或无向图的环这比dfs更快更简单,省得要标记来标记去蓝桥杯历届试题 发现环:资源限制时间限制:1.0s 内存限制:256.0MB问题描述 小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。 不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不原创 2019-05-16 19:30:45 · 884 阅读 · 0 评论 -
KMP模板(C++)
这是一个KMPC++的模板。相信很对同学看了大佬超详细的讲解(本文有链接),但还是不太清楚next数组的意义,或者为什么next[0]=-1,而不是1。Kmp的时间复杂度为什么是线性的原创 2019-11-25 22:38:05 · 7011 阅读 · 0 评论 -
高精度加减乘除C/C++实现 + python实现
高精度模板[高精度加法]例题 一、P601洛谷:A+B Problem(高精)1.C/C++模板1[详细版]2.python(三行代码)[高精度加法]例题二、蓝桥杯基础练习 高精度加法C/C++模板2[精简版][高精度减法]模板(C++)[高精度乘法]模板C++高精度除法原创 2019-04-17 13:57:32 · 610 阅读 · 0 评论 -
01背包,完全背包,多重背包模板
收录了01背包,完全背包,多重背包的例题和代码模板,并有详细解析的大佬链接,本文只是提取重点和归纳,还有自己打的代码供大家交流学习,其中含有多重背包的二进制优化详细代码原创 2019-09-26 17:34:34 · 697 阅读 · 0 评论 -
矩阵快速幂、快速幂模板poj3070
poj3070题意就是通过,矩阵求斐波那契数列数列:普通for循环递推我们都会,可是这里的n高达10亿(109),先不说超时,就是打表数组开不了这么大。其实矩阵快速幂和快速幂一个思想来的,代码都差不多,矩阵快速幂就是把快速幂的乘法运算换成矩阵乘法,再加上一点矩阵知识其实矩阵快速幂和快速幂一个思想来的,代码都差不多,矩阵快速幂就是把快速幂的乘法运算换...原创 2020-03-23 17:56:55 · 193 阅读 · 0 评论