自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 【C/C++】乘法逆元与线性同余方程

乘法逆元给定整数b,m互质,且有b|a,则存在一个整数x,使得a/b ☰ a∗x(mod m)a/b\ ☰\ a*x(mod\ m)a/b ☰ a∗x(mod m)成立。此时,x便是b模m的乘法逆元,记为b−1(mod m)b^{-1}(mod\ m)b−1(mod m)。因为a/b☰a∗x☰a/b∗b∗b−1(mod m)a/b☰a*x☰a/b*b*b^{-1}(mod\ m)a/b☰a∗x☰a/b∗b∗b−

2020-08-11 10:36:32 402 2

原创 【C/C++】裴蜀定理与拓展欧几里得算法

前置知识欧几里得算法(辗转相除法)裴蜀定理(Bezout定理)与拓展欧几里得算法定理:对于任意一对正整数a、b,都存在一对整数x、y,使得a∗x+b∗y=gcd(a,b)a*x+b*y=gcd(a,b)a∗x+b∗y=gcd(a,b)证明:字丑,见谅。这个证明是由欧几里得算法得出的,且能根据以上证明得出x与y的值,这种方法就是拓展欧几里得算法。【Code】int exgcd(int a,int b,int &x,int &y){//通过引用传回x与y的值 if

2020-08-10 23:39:16 674 1

原创 【C/C++】欧拉函数代码实现

前置知识给定两个正整数 a 、b ,若gcd(a,b) == 1 ,则称a、b互质。试除法解质因子分解。欧拉函数问: 给定一个正整数 N,求 1 ~ N 中与N互质的数的个数。最暴力的做法就是从1遍历到N对每个数用gcd判断是否互质,这种的时间复杂度是O(N logN)。这样就比较慢了,而欧拉函数可以将时间复杂度降到O(N\sqrt NN​)。根据算数基本定理 N=p1a1∗p2a2∗...∗pmamN = p_1^{a_1} * p_2^{a_2} * ... *p_m^{a_m}N=

2020-08-10 23:15:27 1336 1

原创 关于素数与约数的基本数论概念

约数基本定义:若整数 d 能整除 n ,说明 d 是 n 的约数,n 是 d 倍数,记 d | n 。如果d | n 成立,则 nd\frac{n}{d}dn​ | n 也成立。(约数是成对出现的)求 N 的正约数集合 - 试除法由约数成对出现可知,一对一个大一个小,无需枚举所有约数,只需要枚举每对约数中小的那个即可。那枚举的上界是多少呢?设 d 是整数 n 的约数,且是这对约数中较小的那个,则有 d<=ndd <= \frac{n}{d}d<=dn​ 既 d2<=n

2020-08-07 21:18:16 430

原创 Bellman-Ford算法与队列优化模板

Bellman-Ford模板问题:有 n 个点,m 条边的正权图有向图中,求源点 s 到其余各点的最短路径算法流程循环n - 1次每次循环枚举所有 a->b 权值为 w 的边,判断 dis[b] = min(dis[b],dis[a] + w);【Code】const int N,M;//N最大点数,M最大边数struct Edge{ int a,b,w;//边 a -> b 权值为 w }p[M];//因为每次都是枚举所有的边,所以可以直接这样存边,无需邻接矩阵

2020-08-06 17:34:42 131

原创 Dijkstra的朴素模板、堆优化模板与一些问题

基本思想问题:有 n 个点,m 条边的正权图有向图中,求源点 s 到终点 end 的最短路径先给出算法流程首先定义distance数组,让 distance[s] = 0 ,其余节点的值赋为正无穷。其意义是源点 s 到其他节点的初始距离(点s 自己到自己的距离 == 0)。找出一个未被标记且distance最小的点 t ,然后标记点 t 。遍历一遍 t 的所有出边,并distance[t] 来 松弛 其余节点。重复 2、3 步,直至所有的点被标记完。dij算法是基于贪心思想,当图不含负

2020-08-05 23:35:46 205

原创 【C/C++】基本算法_模板

此博客仅为个人学习博客,模板源自y总算法基础课.

2020-07-16 18:39:17 377

转载 c/c++ 暴力火车头

如果只超时了一点点,就用这个暴力过去吧。#pragma GCC diagnostic error "-std=c++11"#pragma GCC target("avx")#pragma GCC optimize(3)#pragma GCC optimize("Ofast")#pragma GCC optimize("inline")#pragma GCC optimize("-fgcse")#pragma GCC optimize("-fgcse-lm")#pragma GCC optim

2020-07-14 21:41:03 2540

原创 【C/C++】普通快读和普通快写 模板

原理:用getchar()读入比scanf直接读入要快,总得来说getchar() 快于 scanf() 快于 cin。所以对于一些输入量大(大概10^5左右)的题目,尽量避免使用cin。普通快读inline int read(){ int a = getchar(); int x = 0,f = 1;//f判断正负数 while(a < '0' || a > '9'){ if(a == '-') f = -1; a = getchar(); } while(a >=

2020-05-11 16:00:01 584

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除