自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 资源 (1)
  • 收藏
  • 关注

原创 python 辗转相除法 最大公约数

对于辗转相除法的证明:https://blog.csdn.net/er111er/article/details/79251895 原作者写得很棒。 def gcd(a,b): return a if b==0 else gcd(b,a%b) 首先核心在于:a和b的最大公约数等价于b和a对b求余的最大公约数。 感性理解,假设存在最大公约数M,那么a是M的倍数,b是M的倍数,那么a和b的线性组合也是M的倍数。 所以a对b的余数是线性组合的一种,那么也是M的倍数,更重要的是a对b的余数小于a和b(a&g

2020-12-04 20:30:12 919

原创 python 堆优化的迪杰斯特拉最短路径算法(Dijkstra‘s)

def DIJ(self, lengths: List[List[int]], N: int, K: int) -> int: #lengths为权值矩阵,N为节点个数,K为出发节点 #例如lengths = [[2,1,1],[2,3,1],[3,4,1]],表示从2到1路径长度为1,从2到3路径长度为1 graph = collections.defaultdict(list) for x,y,z in lengths: ...

2020-12-02 11:20:24 898 3

原创 python 简易版本树状数组

class BIT: def __init__(self, n: int): self.n = n+1 self.c = [0]*(self.n) def update(self, i: int, di: int) -> None: diff = di i += 1 while i<self.n: self.c[i] += diff i += i&am

2020-11-29 20:25:15 138

原创 python 树状数组

class NumArray: def __init__(self, nums: List[int]): self.n = len(nums)+1 self.c = [0]*(self.n) for i in range(len(nums)): self.update(i,nums[i]) def update(self, i: int, val: int) -> None: diff = v

2020-11-27 11:04:59 475

原创 python 线段树模板

class NumArray: def __init__(self, nums: List[int]): n = 1 while n<len(nums): n<<=1 self.n = n self.tree = [0]*self.n + nums + [0]*(self.n-len(nums)) for i in range(self.n-1,0,-1):

2020-11-26 20:42:38 408

原创 python 并查集模板

python 并查集模板 def find(x,pre): root, p = x, x # root:根节点, p:指针 # 找根节点 while root != pre[root]: root = pre[root] # 路径压缩,把每个经过的结点的上一级设为root(直接设为首级) while p != p

2020-11-23 14:52:33 321

requirements.txt

requirements.txt

2021-09-09

空空如也

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

TA关注的人

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