自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 取模问题

由费马小定理可推出:(1/a)%m = a^(m-2)%m其中m为素数 && a 整除 b那么,(a/b)%m 就可以变成 a * b^(m-2)%m如果m太大,可以使用快速幂(1) % 运算符% 只用于整型的计算,后一个数不能是0,参与运算的数据可正可负。对于x%y ,计算之后结果的正负与 x 的符号相同,如果前者是较小的数,后者是较大的数,那么,结果直接为...

2019-10-09 10:36:47 537

原创 求树的直径或两端点

树的直径概念:一颗树上存在的最长路径。一:两次bfs求树的直径先从任意一点P出发,找离它最远的点Q,再从点Q出发,找离它最远的点W,W到Q的距离就是是的直径int bfs(int s){ memset(dis, 0x3f, sizeof dis); queue<int> q; q.push(s); dis[s] = path[s] = 0...

2019-10-05 23:25:37 415

原创 求排列组合

在LINUX环境下可以用__int128ll arr(int n, int m)//排列{ ll res = 1; for (int i = 0; i < m; i++) { res = res * (n - i); } return res;}ll com(int n, int m)//组合{ ll res = 1; m = min(m, n - m); ...

2019-10-05 22:42:34 164

原创 最短路总结

最短路问题不仅指最短路,还包括最长路一,求多源最短路(即任意两点间的最短路)  弗洛伊德算法: 时间复杂度为O(n^3)void floyd(){ for (int k = 1; k <= n; k++) for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) d[i][j] = min(d[...

2019-10-03 22:58:50 134

原创 利用kmp求字符串的最小循环节

根据next数组,字符串的最小循环节为L = len - next[len]若len % L == 0 ,则说明字符串由若干个完整的循环节构成,周期为T = len / L否则,字符串由若干个完整的循环节和一个不完整的循环节构成,不完整的循环节长度为len % L,构成完整的循环节需要加 L - len % L 个字符#pragma comment(linker,"/STACK:1024...

2019-09-28 23:36:03 1006

原创 求一个数的因子数和因子和

//记录因子数int count(int n){ int ans = 1; for (int i = 2; i * i <= n; i++) { if (n % i == 0) { int s = 0; while (n % i == 0) { n /= i; s++; } ans *= (s + 1); } } if...

2019-09-28 22:49:15 301

原创 数组排序后相邻数的最大差值

题目:输入N个数,求这N个数排序后,相邻数的最大差值。时间复杂度为O(n). 我们可以用桶排序的思想, 把N个数分到 N + 1个桶中,然后我们用桶存连续长度的一个范围的数,每个桶负责的范围是(maxn - minn)/ N(maxn是序列中最大的数,minn是序列中最小的数), 如果一个数为num,那么这个数应存进(num - minn) * N ...

2019-09-27 13:55:04 703

空空如也

空空如也

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

TA关注的人

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