随便放一些.
1 | n=int(input()) # 读入一个整数 |
1 | a,b,c=map(int,input().split()) # 读入三个整数, 以空格分开 |
1 | l=list(map(int,input().split())) # 读入一行长度不定的以空格分开的整数 |
基本够用了.
1 | # 筛[2,n]上的素数, 并将最大素因子存入mpf数组中,素数存入数组prime中 |
1 | #返回[d,x,y],其中d为a和b的最大公约数,(x,y)为ax+by=d中的(x,y) |
1 | def pow_m(a,n,M): |
TODO: 矩阵快速幂, (EX)CRT.
计算
1 | int g(int); |
1 | # 顶点个数最多为 maxn |
基于堆优化。
需要注意的是 Python
set
的in
操作平均情况下是的(worst case 仍然是 ), 所以下面都用了 set
, 但是list
的in
是的. 参考 Python Wiki.
1 | def dij(e,s): #e为邻接表 |
基于堆优化。
1 | def prim(): |
基于并查集。
1 | e=[[0,0,0]for i in range(maxn)] #前两个元素为边的端点,后两个元素为边权 |
TODO.
队列, 栈, 堆需要用的库:
1 | # 队列 |
没找到栈模块,不过deque够用了。
1 | def find(x): #x所在集合的代表元 |
初始化 fa[x]=x
.
TODO: 补充按秩合并.
TODO.
可能会看看这里的.
TODO.