Ming's Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

conda 与 uv

conda创建新环境 conda create -n <env_name> python=3.8 conda activate <env_name> 删除环境 conda env list conda env remove -n <env_name> uvuv init uv venv .venv source .venv/bin/activate
2026-09-20
开发杂记
#常用命令

02_差分数组

差分数组模板diff = [0] * (n + 1) # 开 n+1,防止 r+1 越界 # 对区间 [l, r] 加 v diff[l] += v diff[r+1] -= v # 还原:对 diff 求前缀和 arr = [0] * n curr = 0 for i in range(n): curr += diff[i] arr[i] = curr 字典版(稀疏差分)
2026-09-20
算法学习 > 02_核心算法
#前缀和 #差分

05_并查集

并查集什么是并查集?并查集(Disjoint Set Union,DSU)数据结构,也称为联合-查找数据结构,允许你向图中添加边,并测试图中两个顶点是否相连。 由于实现非常简单,你可能更倾向于使用它来代替 DFS 计算连通分量。 核心优化1. 路径压缩 (Path Compression)在 find 操作中,将路径上的所有节点直接指向根节点,大大加快后续查询。 2. 按秩合并 (Union by
2026-09-19
算法学习 > 06_Graphs
#并查集 #DSU #图 #数据结构

06_Cycle Detection in Directed Graph 有向图环检测

有向图中的环检测在有向图中检测是否存在环(Cycle)是一个经典问题。环是指从某个节点出发,沿着有向边最终能回到该节点的路径。 方法一:DFS + 三色标记算法思想使用三种颜色标记节点的状态: 白色 (0):未访问 灰色 (1):正在访问(在当前递归栈中) 黑色 (2):已访问完成(不在递归栈中) 如果在 DFS 过程中遇到灰色节点,说明找到了环。 为什么有效? 灰色节点表示当前路径上的节点
2026-05-07
算法学习 > 06_Graphs
#DFS #图 #拓扑排序 #环检测

07_Python工具函数

Python 工具函数itertools.accumulate —— 前缀和 / 前缀最值签名:itertools.accumulate(iterable, func=operator.add, *, initial=None) 一遍扫描累积出「每一步的折叠结果」,默认就是前缀和: from itertools import accumulate from operator import mul
2026-09-19
算法学习 > 01_数据结构
#Python #itertools #前缀和

08_高级数据结构

高级数据结构树状数组 (Fenwick Tree)class Fenwick: """树状数组 (Fenwick Tree / Binary Indexed Tree)""" def __init__(self, n: int = 0): self.n = n self.a = [0] *
2026-09-19
算法学习 > 01_数据结构
#并查集 #树状数组 #RMQ #矩阵快速幂

最大子数组和(Kadane 算法)

最大子数组和(Kadane 算法)模板标准版(DP 转移,推荐)def kadane(nums): cur = nums[0] # 以 i 结尾的最大子数组和 best = nums[0] for x in nums[1:]: cur = max(x, cur + x) # 要么自己重开,要么接上前缀 best = max(best,
2026-09-20
算法学习 > 05_动态规划
#动态规划 #Kadane #子数组

01_Introduction to DP 动态规划简介

动态规划简介核心思想将大问题拆解为小问题,记录子问题的解,避免重复计算。 示例 - 青蛙 1 (Frog 1)题目描述https://atcoder.jp/contests/dp/tasks/dp_a 题目要求我们计算青蛙从石头 $1$ 跳到石头 $N$ ($N \le 10^5$) 的最小总成本,已知青蛙只能跳一或两的距离。任意两个石头 $i$ 和 $j$ 之间的旅行成本由 $|h_i - h
2026-04-30
算法学习 > 05_动态规划
#DP #动态规划 #算法

09_动态规划

动态规划(Dynamic Programming,简称 DP)是面试中出现频率最高的算法类型。很多同学觉得 DP 难,其实只要掌握了思考框架,绝大多数题目都能拆解出来。 什么是动态规划核心思想:把一个大问题拆成若干个重叠的子问题,先解决小的子问题,把结果存起来,再用这些结果推导出大问题的答案。 与贪心算法的区别 维度 动态规划 贪心 决策方式 考虑所有子问题,取全局最优 每一步只看
2026-09-19
算法学习 > 05_动态规划
#动态规划 #模板

Custom Comparators and Coordinate Compression 自定义比较器和坐标压缩

Custom Comparators and Coordinate Compression自定义比较器和坐标压缩本文介绍两种在竞赛编程中常用的技术:自定义排序和坐标压缩。 一、自定义排序排序不仅限于数字,还可以用于任意对象。 方法一:使用元组将对象与排序关键字打包成元组: edge_num = 4 edges = [] for _ in range(edge_num): a, b, wi
2026-04-30
算法学习 > 其他算法
#排序 #坐标压缩 #自定义比较器
1234…11

搜索

Hexo Fluid