oi

kuailedetongnian18 天前
c++·数学·oi
组合数学组合基础与数论基础证明:引理:\(\forall p\in\mathbb{P},n\in[1,p-1]\cap\mathbb{Z},\binom{p}{n} \equiv 0 \pmod{p}\)
OIer-zyh1 个月前
c++·算法·图论·oi
【图论】Kruskal重构树
OIer-zyh1 个月前
c++·算法·图论·最短路·oi
【图论】DijkstraDijkstra 算法是一种求正权图单源最短路的算法。注意到BF最大的缺陷在于其对于一个点的松弛方式太暴力了。 注意到有正权这个条件。 那么我们发现,只要选取当前距离最小的点,该点不可能被松弛。 于是使用一个小根堆维护距离即可。
Code_Shark4 个月前
c++·算法·codeforces·oi·acm-icpc
Codeforces Round 962 (Div. 3) A~F农夫约翰的农场又迎来了美好的一天。农夫约翰来到农场后,数了数共 n n n条腿。众所周知,农场里只住着鸡和牛,一只鸡有 2 2 2条腿,而一头牛有 4 4 4条腿。
Code_Shark5 个月前
c语言·算法·atcoder·oi·acm-icpc
AtCoder Beginner Contest 359 A~C(D~F更新中...)给出 N N N个字符串,每个字符串为以下两种字符串之一:"Takahashi""Aoki"请你统计"Takahashi"出现了多少次。
OIer-zyh6 个月前
c++·数学·算法·oi
【算法】快速幂我们要求 a n a^n an。 简单的方法是 a n = a n − 1 ⋅ a a^n=a^{n-1}\cdot a an=an−1⋅a 但是我们不妨使用倍增的思想 若 2 ∣ n 2\mid n 2∣n,则 a n = a n 2 2 a^n={a^{\frac n 2}}^2 an=a2n2 若 2 ∤ n 2\nmid n 2∤n,则 a n = a ⌊ n 2 ⌋ 2 ⋅ a a^n={a^{\lfloor{\frac n 2}\rfloor}}^2\cdot a an=a⌊2n⌋2⋅a
Code_Shark6 个月前
算法·codeforces·oi·acm-icpc
Codeforces Round 948 (Div. 2) A~D小 A A A决定用一些立方体建一座塔。一开始,塔上没有任何立方体。在一次移动中,小 A A A要么正好把 1 1 1 个立方体放到塔顶,要么正好从塔顶移走 1 1 1 个立方体。存不存在一种可能使得在走了 n n n 步之后,塔顶正好有 m m m 个立方体?
OIer-zyh6 个月前
c++·线性代数·数学·矩阵·oi
【数学】矩阵与矩阵乘法定义一个 n × m n\times m n×m 的矩阵如下: [ a 1 , 1 ⋯ a 1 , m ⋮ ⋱ ⋮ a n , 1 ⋯ a n , m ] \begin{bmatrix}a_{1,1}&\cdots&a_{1,m}\\\vdots&\ddots&\vdots\\a_{n,1}&\cdots&a_{n,m}\end{bmatrix} a1,1⋮an,1⋯⋱⋯a1,m⋮an,m
OIer-zyh6 个月前
c++·算法·图论·oi
【图论】FloydFloyd 是一种优秀的全源最短路算法。 它的执行过程类似于 dp,如下: 首先我们定义 d [ i ] [ j ] d[i][j] d[i][j] 为节点 i i i 到节点 j j j 的最短距离。 我们枚举中转节点 k k k,再枚举两个节点 i , j i,j i,j,显然得到转移方程 d [ i ] [ j ] = min ⁡ ( d [ i ] [ j ] , d [ i ] [ k ] + d [ k ] [ j ] ) d[i][j]=\min(d[i][j],d[i][k]+d[k][j
Code_Shark7 个月前
算法·atcoder·oi·acm-icpc
AtCoder Beginner Contest 352 A~E(F更新中...)有 N N N个车站,列车的运行有两种方向,即 1 → n 1 \rightarrow n 1→n和 n → 1 n \rightarrow 1 n→1两种。
OIer-zyh7 个月前
c++·图论·oi
【图论】图论基础图论不同地方讲的不太一样,本文仅限作者的理解图一般由点集 V V V 和边集 E E E 组成。 对于 v ∈ V v\in V v∈V,称 v v v 为该图的一个节点。 对于 e ∈ E e\in E e∈E,一般用二元组 ( u , v ) (u,v) (u,v) 表示 e e e,其中 u , v ∈ V u,v\in V u,v∈V。在无向图中,该二元组无序,即边为双向;在有向图中,该二元组有序,即边为单向。 一个带有边权(边的长度)的图称为带权图,此时边一般记为 ( u , v , w ) (
OIer-zyh7 个月前
c++·数学·oi
【数学】高斯-约旦消元和高斯消元一样,高斯-约旦消元也是通过加减消元来化简方程。两者之间的不同在于,高斯-约旦消元会将系数矩阵消成形如 A ′ = [ a 1 , 1 ′ b 1 ′ a 2 , 2 ′ b 2 ′ ⋱ ⋮ a n , n ′ b n ′ ] A'=\begin{bmatrix}a_{1,1}'&&&&b_1'\\&a_{2,2}'&&&b_2'\\&&\ddots&&\vdots\\&&&a_{n,n}'&b_n'\end{bmatrix} A′= a1,1′a2,2′⋱an,n′b1′b2′⋮bn′ 的形式
Code_Shark1 年前
算法·codeforces·oi
Codeforces Round 917 (Div. 2) A~F给出一个数组 a 1 , a 2 , . . . , a n a_1, a_2, ..., a_n a1,a2,...,an,你可以进行若干次以下操作: