Unverified Commit ce4e24a0 authored by Trisolaris HD's avatar Trisolaris HD Committed by GitHub
Browse files

Merge pull request #1155 from Ghastlcon/patch-1

规范化数学表达式
parents 2b2349d4 7c8f65b3
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@

如上图所示,黑线等于蓝线加绿线加红线。每次我们选择 $1$ 个 $P_i$ ,并选择其他的 $H_j[j\neq i]$ ,做一条过这些点的一条至多 $n-1$ 次的线。由于有 $n-2$ 个点都在 $x$ 轴上,我们知道这条线的解析式一定是形如 $g_i(x)=y_i\times (\prod_{i=1}^{n} (x-x_i)[i\neq x])$ 的形式。

最后将所有的 $g(x)$ 相加,即 $f(x)=sum_{i=1}^{n}g_i(x)$ 。因为对于每个点 $P_i$ ,都只有一条函数经过 $P_i$ ,其余都经过 $H_i$ ,这一项的系数是 $0$ ,所以最后的和函数总是过所有 $n$ 个点的。
最后将所有的 $g(x)$ 相加,即 $f(x)=\sum_{i=1}^{n}g_i(x)$ 。因为对于每个点 $P_i$ ,都只有一条函数经过 $P_i$ ,其余都经过 $H_i$ ,这一项的系数是 $0$ ,所以最后的和函数总是过所有 $n$ 个点的。

公式整理得:

@@ -41,9 +41,9 @@

如果要将每一项都算出来,时间复杂度仍是 $O(n^2)$ 的,但是本题中只用求出 $f(k)$ 的值,所以只需将 $k$ 代入进式子里得:

 $Ans=\sum_{i=1}^{n} y_i\times(\prod_{j\neq i }\frac{k-x_j}{x_i-x_j})$ 
 $\mathrm{answer}=\sum_{i=1}^{n} y_i\times(\prod_{j\neq i }\frac{k-x_j}{x_i-x_j})$ 

本题中,还需要求解逆元。如果先分别计算出分子和分母,在计算分母的逆元,乘上分子,累加进最后的答案,时间复杂度的瓶颈就不会在求逆元上,时间复杂度为 $O(n^2)$ 。
本题中,还需要求解逆元。如果先分别计算出分子和分母,再将分子乘进分母的逆元,累加进最后的答案,时间复杂度的瓶颈就不会在求逆元上,时间复杂度为 $O(n^2)$ 。

### 代码实现