没有合适的资源?快使用搜索试试~ 我知道了~
首页ACM经典代码数论_ 图论_几何_组合_数值等
ACM经典代码数论_ 图论_几何_组合_数值等
需积分: 9 11 下载量 156 浏览量
更新于2023-03-16
评论
收藏 459KB DOC 举报
ACM经典代码,包含:数论、图论、几何、组合、结构,应用,数值等,代码可直接使用
资源详情
资源评论
资源推荐
目录
一.数论.............................................................................................................................................4
1.阶乘最后非零位......................................................................................................................4
2. 模线性方程(组)......................................................................................................................4
3. 素数表.....................................................................................................................................6
4. 素数随机判定(miller_rabin)..................................................................................................6
5. 质因数分解.............................................................................................................................7
6. 最大公约数欧拉函数.............................................................................................................8
二.图论_匹配...................................................................................................................................9
1. 二分图最大匹配(hungary 邻接表形式)................................................................................9
2. 二分图最大匹配(hungary 邻接表形式,邻接阵接口).........................................................10
3. 二分图最大匹配(hungary 邻接阵形式)..............................................................................10
4. 二分图最大匹配(hungary 正向表形式)..............................................................................11
5. 二分图最佳匹配(kuhn_munkras 邻接阵形式)...................................................................11
6. 一般图匹配(邻接表形式)....................................................................................................12
7. 一般图匹配(邻接表形式,邻接阵接口)...............................................................................13
8. 一般图匹配(邻接阵形式)....................................................................................................14
9. 一般图匹配(正向表形式)....................................................................................................15
三.图论_生成树.............................................................................................................................16
1. 最小生成树(kruskal 邻接表形式).......................................................................................16
2. 最小生成树(kruskal 正向表形式).......................................................................................18
3. 最小生成树(prim+binary_heap 邻接表形式).....................................................................19
4. 最小生成树(prim+binary_heap 正向表形式).....................................................................20
5. 最小生成树(prim+mapped_heap 邻接表形式)...................................................................21
6. 最小生成树(prim+mapped_heap 正向表形式)...................................................................23
7. 最小生成树(prim 邻接阵形式)............................................................................................24
8. 最小树形图(邻接阵形式)....................................................................................................24
四.图论_网络流.............................................................................................................................26
1. 上下界最大流(邻接表形式)................................................................................................26
2. 上下界最大流(邻接阵形式)................................................................................................27
3. 上下界最小流(邻接表形式)................................................................................................29
4. 上下界最小流(邻接阵形式)................................................................................................30
5. 最大流(邻接表形式)............................................................................................................31
6. 最大流(邻接表形式,邻接阵接口).......................................................................................32
7. 最大流(邻接阵形式)............................................................................................................33
8. 最大流无流量(邻接阵形式)................................................................................................34
9. 最小费用最大流(邻接阵形式)............................................................................................35
五. 图论_最短路径...........................................................................................................................36
1. 最短路径(单源 bellman_ford 邻接阵形式).........................................................................36
2. 最短路径(单源 dijkstra_bfs 邻接表形式)...........................................................................37
3. 最短路径(单源 dijkstra_bfs 正向表形式)...........................................................................37
4. 最短路径(单源 dijkstra+binary_heap 邻接表形式)............................................................38
1
5. 最短路径(单源 dijkstra+binary_heap 正向表形式)............................................................39
6. 最短路径(单源 dijkstra+mapped_heap 邻接表形式)..........................................................40
7. 最短路径(单源 dijkstra+mapped_heap 正向表形式)..........................................................41
8. 最短路径(单源 dijkstra 邻接阵形式)..................................................................................43
9. 最短路径(多源 floyd_warshall 邻接阵形式)......................................................................43
六. 图论_连通性...............................................................................................................................44
1. 无向图关键边(dfs 邻接阵形式)..........................................................................................44
2. 无向图关键点(dfs 邻接阵形式)..........................................................................................44
3. 无向图块(bfs 邻接阵形式)..................................................................................................45
4. 无向图连通分支(bfs 邻接阵形式)......................................................................................46
5. 无向图连通分支(dfs 邻接阵形式)......................................................................................47
6. 有向图强连通分支(bfs 邻接阵形式)..................................................................................47
7. 有向图强连通分支(dfs 邻接阵形式)..................................................................................48
8. 有向图最小点基(邻接阵形式)............................................................................................49
七. 图论_应用...................................................................................................................................50
1.欧拉回路(邻接阵形式).........................................................................................................50
2. 前序表转化...........................................................................................................................50
3. 树的优化算法.......................................................................................................................51
4. 拓扑排序(邻接阵形式)........................................................................................................53
5. 最佳边割集...........................................................................................................................53
6. 最佳顶点割集.......................................................................................................................54
7. 最小边割集...........................................................................................................................56
8. 最小顶点割集.......................................................................................................................57
9. 最小路径覆盖.......................................................................................................................58
八. 图论_NP 搜索.............................................................................................................................59
1. 最大团(n 小于 64)(faster).....................................................................................................59
2. 最大团...................................................................................................................................61
九. 组合.............................................................................................................................................62
1. 排列组合生成.......................................................................................................................62
2. 生成 gray 码..........................................................................................................................64
3. 置换(polya)...........................................................................................................................64
4. 字典序全排列.......................................................................................................................65
5. 字典序组合...........................................................................................................................65
6. 组合公式...............................................................................................................................66
十. 数值计算.....................................................................................................................................67
1. 定积分计算(Romberg).........................................................................................................67
2. 多项式求根(牛顿法)............................................................................................................68
3. 周期性方程(追赶法)............................................................................................................70
十一. 几何.........................................................................................................................................71
1. 多边形...................................................................................................................................71
2. 多边形切割...........................................................................................................................74
3. 浮点函数...............................................................................................................................75
4. 几何公式...............................................................................................................................81
5. 面积.......................................................................................................................................83
2
6. 球面.......................................................................................................................................83
7. 三角形...................................................................................................................................84
8. 三维几何...............................................................................................................................86
9. 凸包(graham)........................................................................................................................96
10. 网格(pick)...........................................................................................................................98
11. 圆.........................................................................................................................................99
12. 整数函数...........................................................................................................................101
13. 注意...................................................................................................................................104
十二. 结构.......................................................................................................................................105
1. 并查集.................................................................................................................................105
2. 并查集扩展(friend_enemy)................................................................................................105
3. 堆(binary)............................................................................................................................106
4. 堆(mapped)..........................................................................................................................106
5. 矩形切割.............................................................................................................................107
6. 线段树.................................................................................................................................108
7. 线段树扩展.........................................................................................................................110
8. 线段树应用.........................................................................................................................112
9. 子段和.................................................................................................................................113
10. 子阵和...............................................................................................................................113
十三. 其他.......................................................................................................................................114
1. 分数.....................................................................................................................................114
2. 矩阵.....................................................................................................................................116
3. 日期.....................................................................................................................................118
4. 线性方程组(gauss).............................................................................................................120
5. 线性相关.............................................................................................................................121
十四. 应用.......................................................................................................................................122
1. joseph...................................................................................................................................122
2. N 皇后构造解.....................................................................................................................123
3. 布尔母函数.........................................................................................................................124
4. 第 k 元素.............................................................................................................................124
5. 幻方构造.............................................................................................................................125
6. 模式匹配(kmp)...................................................................................................................126
7. 逆序对数.............................................................................................................................127
8. 字符串最小表示.................................................................................................................127
9. 最长公共单调子序列.........................................................................................................128
10. 最长子序列.......................................................................................................................129
11. 最大子串匹配...................................................................................................................130
12. 最大子段和.......................................................................................................................131
13. 最大子阵和.......................................................................................................................131
3
一.数论
1.阶乘最后非零位
//求阶乘最后非零位,复杂度 O(nlogn)
//返回该位,n 以字符串方式传入
#include <string.h>
#define MAXN 10000
int lastdigit(char* buf){
const int mod[20]={1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2};
int len=strlen(buf),a[MAXN],i,c,ret=1;
if (len==1)
return mod[buf[0]-'0'];
for (i=0;i<len;i++)
a[i]=buf[len-1-i]-'0';
for (;len;len-=!a[len-1]){
ret=ret*mod[a[1]%2*10+a[0]]%5;
for (c=0,i=len-1;i>=0;i--)
c=c*10+a[i],a[i]=c/5,c%=5;
}
return ret+ret%2*5;
}
2. 模线性方程(组)
#ifdef WIN32
typedef __int64 i64;
#else
typedef long long i64;
#endif
//扩展 Euclid 求解 gcd(a,b)=ax+by
int ext_gcd(int a,int b,int& x,int& y){
int t,ret;
if (!b){
x=1,y=0;
return a;
}
ret=ext_gcd(b,a%b,x,y);
t=x,x=y,y=t-a/b*y;
return ret;
}
//计算 m^a, O(loga), 本身没什么用, 注意这个按位处理的方法 :-P
4
int exponent(int m,int a){
int ret=1;
for (;a;a>>=1,m*=m)
if (a&1)
ret*=m;
return ret;
}
//计算幂取模 a^b mod n, O(logb)
int modular_exponent(int a,int b,int n){ //a^b mod n
int ret=1;
for (;b;b>>=1,a=(int)((i64)a)*a%n)
if (b&1)
ret=(int)((i64)ret)*a%n;
return ret;
}
//求解模线性方程 ax=b (mod n)
//返回解的个数,解保存在 sol[]中
//要求 n>0,解的范围 0..n-1
int modular_linear(int a,int b,int n,int* sol){
int d,e,x,y,i;
d=ext_gcd(a,n,x,y);
if (b%d)
return 0;
e=(x*(b/d)%n+n)%n;
for (i=0;i<d;i++)
sol[i]=(e+i*(n/d))%n;
return d;
}
//求解模线性方程组(中国余数定理)
// x = b[0] (mod w[0])
// x = b[1] (mod w[1])
// ...
// x = b[k-1] (mod w[k-1])
//要求 w[i]>0,w[i]与 w[j]互质,解的范围 1..n,n=w[0]*w[1]*...*w[k-1]
int modular_linear_system(int b[],int w[],int k){
int d,x,y,a=0,m,n=1,i;
for (i=0;i<k;i++)
n*=w[i];
for (i=0;i<k;i++){
m=n/w[i];
d=ext_gcd(w[i],m,x,y);
5
剩余63页未读,继续阅读
JasonLiu798
- 粉丝: 45
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- stc12c5a60s2 例程
- Android通过全局变量传递数据
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0