曲线平滑 1.曲线平滑步骤 第一步:创建频率域加权系数数组 \[{\rm{Gamma(i) = }}\frac{1}{{1 + par{{\left( {2 - 2\cos \frac{{i \cdot PI}}{N}} \right)}^2}}} \]其中\(par\)为平滑算法的平滑参数,\(par\)越大,平滑成都越狠,\(N\)为待平滑数组的总点数。 第二步:对待平滑数组\(X\)进行
线性递推与整式递推数列 本文主要摘录自 2019 年国家候选队论文集《两类递推数列的性质和应用》——钟子谦。 线性递推数列 定义 对于无限数列 \(\{ a_0,a_1,\cdots\}\),和有限非空数列 \(\{ r_0,r_1,\cdots,r_{m-1} \}\),若对于任意 \(p\geq m-1\),有 \(\sum_{k=0}^{m-1}a_{p-k}r_k=
传送门 赛时基本对了,结果被我推的错误数值表 hack 了队友,并且由于对多项式的操作不熟,导致最后一步一直没想出来 【大意】 给定 \(n, m\) ,求集合 \(\left\{ q | \left(\begin{matrix}1&2&3&\cdots&n\\p_1&p_2&p_3&\cdots&p_n\end{matrix}\right) ^ m = \left(\begin{matrix}1&2&
题目链接 题解 方法一 考虑将这个东西看成立方体。相当于在一个 \(a\times b\times c\) 的长方体里堆积,每一层必须堆积在墙角的方案数。 这个东西实际上相当于 \(c\) 个人从 \((a,b)\) 走到 \((0,0)\) ,路径可以重叠但不能穿过,路径总数。 这个问题考虑LGV引理,但是LGV引理处理的是不
上期回顾 上次介绍了行列式的基本性质,我们继续探索由性质得出的有用结论(以二阶行列式为基准)。 结论一 如果行列式两行相同,则行列式的值是 \(0\) 。 证明: \[\because \begin{vmatrix} a&b\\ c&d\\ \end{vmatrix} =-\begin{vmatrix} c&d\\ a&b\\ \end{vmatrix}\\ \therefore \begin{
引入 什么是 \(\text{FFT}\) ? 反正我看到 \(\text{wiki}\) 上是一堆奇怪的东西。 快速傅里叶变换(英语:Fast Fourier Transform, FFT),是快速计算序列的离散傅里叶变换(DFT)或其逆变换的方法。傅里叶分析将信号从原始域(通常是时间或空间)转换到频域的表示或者逆过来转换。FFT会通过把DFT
link 题意简述:给定两个串 \(s,t\),求至少用 \(s\) 的几个前缀才能拼出 \(t\)。\(|s|,|t| \leq 1e5\)。 考虑 dp。设 \(dp_i\) 表示至少用 \(s\) 的几个前缀才能拼出 \(t\) 的前 \(i\) 个字符。转移方程:\(dp_i=dp_j+1 \ \text{if} \ t_{j,j+1 \cdots i} = s_{1,2,\cdots i-j}\)。这
100+35+50。 T1 有线性做法。 T2 多项式做法完全听不懂。好像有 dp 做法。 T3 拉格朗日反演 不会。 q-模拟 指的是在原来的理论里引入一个 \(q\),使得 \(q\to 1\) 时与原理论相同。 定义 q-整数 \([k]_q=\frac{1-q^k}{1-q}\),这样 \(\lim_{q\to 1} [k]_q=k\)。所以 \([k]!_q=\frac{(
点击查看代码 单调队列优化 \(f[i][j] = max(f[i-1][j],f[i-1][j-v]+w,f[i-1][j-2 \cdot v]+2 \cdot w,\cdots,f[i-1][j-s \cdot v]+s \cdot w)\) \(f[i][j-v] = max(f[i-1][j-v],f[i-1][j-2 \cdot v]+ w,\cdots,f[i-1][j-s \cdot v]+s \cdot w,f[i-1][j-3 \cdot v] + 2
点击查看代码 #include<iostream> using namespace std; const int N = 110, M = 10010; int m; int v[4] = {10, 20, 50, 100}; int f[M]; int main() { cin >> m; f[0] = 1; for (int i = 0; i < 4; i ++) for (int j = v[i]; j <= m; j ++) f[j]
题目大意 元元曾经是班长。在校运动会上,元元的班要进行队列表演。元元要选出 \(2\times n\) 名同学编队,每人都被编上一个号,每一个从 \(1\) 到 \(n\) 的自然数都被某 \(2\) 名同学佩戴,现在要求将他们排成一列,使两个编号为 \(1\) 的同学中间恰好夹 \(1\) 名同学,两个编号为 \(2\) 的
泰勒公式及其在高中的运用 介绍 对于一些特殊的函数,由于多项式的运用更加简单,我们希望能使用多项式函数去近似地表达以便于研究这些函数的性质 而泰勒公式就可以帮助我们利用导数来拟合这些特殊函数(前面都是定义,想知道怎么推出来泰勒可以转到“推导与证明”部分) 首先根据导数我们
点击查看代码 #include<iostream> using namespace std; const int N = 3010; int n; int a[N], b[N]; int f[N][N]; int main() { cin >> n; for (int i = 1; i <= n; i ++) cin >> a[i]; for (int i = 1; i <= n; i ++) cin >> b[i]; for (
越发觉得自己物理学得烂了... 前置 前置的物理定律包括如下两条: 欧姆定律,即 \(\phi_i-\phi_j=U_{i,j}=I_{i,j}R\)。定义电导率为 \(w=R^{-1}\),那么有 \(I_{i,j}=U_{i,j}w\)。 基尔霍夫定律,即对于电阻网络的任意节点 \(v\),流入的电流等于流出的电流 。 电路网络与 \(L\) 对于单位
1. 中国剩余定理表述 设正整数\(m_1,m_2,\cdots,m_n\)两两互素,则同余方程组: \[\begin{cases} x \equiv a_1(mod \quad m_1) \\ x \equiv a_2(mod \quad m_2) \\ \cdots\cdots\cdots\cdots\cdots\cdots \\ x \equiv a_n(mod \quad m_n) \\ \end{cases} \]有整数解,且在模\(M =
花了不少时间终于把算符优先分析法大体上看明白了。写一篇文章来记录一下分析的过程。面向做题的,细节很全。 算符优先分析法是一种比较古老的自下而上的语法分析方法,很容易手动推导,但是会有一些问题,现在已经很少使用。现在主流的语法分析技术是 LR 分析法。 已知某个文法,进行算符
T1 排队(queue) 求长度为 \(n\) 的排列,有 \(m\) 个峰的方案数。 可以暴力打出 \(n\le 10\) 的情况,然后把数据放到 oeis 上。 显然可以递推。我们记 f[n][k] 表示长度为 \(n\) 的排列有 \(m\) 个峰的方案数。 考虑在 f[n-1] 的基础上考虑加入一个 \(n\)。 如果 \(n\) 放在某个峰的
根据裴蜀显然每次最少移动 \(d=\gcd(a_1,a_2,\cdots,a_n)\),注意到 \(1\le d \le k\),初始坐标为 \(k!\),则最后可以移动到 \(d\)。 问题改为: \[\frac{1}{k^n}\sum_{a_1=1}^k\sum_{a_2=1}^k\cdots\sum_{a_n=1}^k\gcd(a_1,a_2,\cdots,a_n) \]\[=\frac{1}{k^n}\sum_{d=1}^kd\sum_{a_1=1
洛谷题面 题目大意 求出每一个大小相同的“块”,如果有块的大小为 \(1\) 则无解。 否则,我们对于每个“块”,设组成此“块”的每个元素的下标为 \([i,i+1,\cdots,i+k]\),则答案排列为 \([i+k,i,i+1,\cdots,i+k-1]\)。 注意求无解和输出要分开操作。 代码 #include <iostream> #include
当标量对向量求导时不需要该参数,但当向量对向量求导时,若不加上该参数则会报错,显示“grad can be implicitly created only for scalar outputs”,对该gradient参数解释如下。 当\(\mathbf y\)对\(\mathbf x\)求导时,结果为梯度矩阵,数学表达如下: \[\frac{\partial \mathbf{y}}{\parti
题目大意 给定整数集合 \(S=\{1,...,n\}\), 计算有多少个子集 \(T\subseteq S\), 使得 \(1,2,\dots,n\) 都可以被表示为 \(T\) 的一个子集中所有数的和. \(n\le 5\times 10^5\), 答案对 \(M\) 取模. 解法概要 设 \(a_{k+1}\) 计数和为 \(k\), 且可以表达出 \(1,\dots,k\) 的集合数
矩阵的张量积 我们从线性映射的角度入手。 现在有 \(U,U',V,V'\),是有限维的线性空间,\(\mathcal{A}\in Hom(U,U'),\mathcal{B}\in Hom(V,V')\) .我们合理定义 \(\mathcal{A}\otimes \mathcal{B}\in Hom(U\otimes V,U'\otimes V')\),by \(\mathcal{A}\otimes \ma
基础 标题 #表示一级标题 以此类推 支持六种标题 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 引用 应用用>表示 > 这是应用 分割线用***或者---表示 --- 强调 *斜体* **加粗
类比完全背包 复杂度 \(O(n^{2})\) 总体复杂度 \(1000^{2} = 1 \times 10^{6}\) 点击查看代码 #include<iostream> using namespace std; const int N = 1010, mod = 1e9 + 7; int n; int f[N]; int main() { cin >> n; f[0] = 1; for (int i = 1; i <= n; i ++) f
Introduction 分类算法(Classification) 监督学习(Supervised Learning) 线性回归 线性回归是为了建立输入特征\(x = (x_1, \cdots, x_n)^T\) 和输出值y之间的线性关系,即: \[y = w^T x \]假设有一组训练数据,特征\(X = ({x^{(1)},\cdots,x^{(m)}})\),值\(\hat Y = ({\hat{y}^{(1