Lagrange 反演入门

公式推导

\[\begin{aligned} \operatorname{Res}_{x} f(x) &= [x^{-1}] f(x)\\ \operatorname{Res}_{x} f'(x) &= 0 \\ \operatorname{Res}_{x} f'(x)g(x) &= -\operatorname{Res}_{x} f(x)g'(x) \\ \operatorname{Res}_{x} \frac{f'(x)}{f(x)} &= \operatorname{ord} f(x) \\ \operatorname{Res}_{x} f(x) \cdot \operatorname{ord} g(x)&= \operatorname{Res}_{u} f(g(u)) g'(u) \end{aligned} \]

\[G(T(x)) = T(G(x)) = x\\ T'(G(x))\cdot G'(x) = 1\\ T(x) = x\Phi(T(x))\\ x = G(x) \Phi(x)\\ \]

\[\begin{aligned} [x^n] H(T(x)) &= \operatorname{Res}_{x} \frac{H(T(x))}{x^{n + 1}}\\ &= \operatorname{Res}_{u} \frac{H(T(G(u)))}{G(u)^{n + 1}} G'(u)\\ &= \operatorname{Res}_{u} H(u)\frac{G'(u)}{G(u)^{n + 1}}\\ &= \operatorname{Res}_{u} H(u)\cdot -\frac{1}{n} \cdot (G(u)^{-n})' \\ &= \frac{1}{n} \operatorname{Res}_{u} H'(u)G(u)^{-n} \\ &= \frac{1}{n} \operatorname{Res}_{u} H'(u) \frac{\Phi(u)^n}{u^n} \\ &= \frac{1}{n} [u^{n - 1}] H'(u) \Phi(u)^n \\ \end{aligned} \]

\[\begin{aligned} [x^n] H(T(x))T'(x) &= \operatorname{Res}_{x} \frac{H(T(x))T'(x)}{x^{n + 1}} \\ &= \operatorname{Res}_{u} \frac{H(u)T'(G(u))}{G(u)^{n + 1}}G'(u) \\ &= \operatorname{Res}_{u} \frac{H(u)}{G(u)^{n + 1}} \\ &= [u^{n}] H(u) \Phi(u)^{n + 1} \end{aligned} \]

\[\begin{aligned} T(x) &= x \Phi(T(x)) \\ T'(x) &= \Phi(T(x)) + x\Phi'(T(x))T'(x) \\ \frac{T'(x)}{\Phi(T(x))} &= \frac{1}{1 - x\Phi'(T(x))} \end{aligned} \]

\[\begin{aligned} [x^n] \frac{H(T(x))}{1 - x\Phi'(T(x))} &= [x^n] \frac{H(T(x))}{\Phi(T(x))} T'(x) \\ &= [u^n] \frac{H(u)}{\Phi(u)} \times \Phi(u)^{n + 1} \\ &= [u^n] H(u)\Phi(u)^n \end{aligned} \]

应用(感恩 gpt)

它们的共同价值是:不用先解出 \(T(x)\),就能求出由 \(T(x)\) 构成的表达式的系数。下面通过六组例子,把这句话具体化。

1.最基本的用途:从递归结构直接得到计数公式

考虑“有根有序树”:每个结点可以有任意多个孩子,并且孩子之间有顺序。用 \(x\) 记录结点数,令 \(T(x)\) 为它的生成函数。

根结点贡献 \(x\),根的孩子可以是 \(0,1,2,\ldots\) 棵这样的树,因此

\[T=x(1+T+T^2+\cdots)=\frac{x}{1-T}. \]

这里

\[\Phi(t)=\frac1{1-t}. \]

想求恰有 \(n\) 个结点的树的数量,就是求 \([x^n]T\)。取 \(H(t)=t\),得到

\[\begin{aligned} [x^n]T &=\frac1n[t^{n-1}](1-t)^{-n}\\ &=\frac1n\binom{2n-2}{n-1}\\ &=\frac1{n}\binom{2(n-1)}{n-1}. \end{aligned} \]

这就是 Catalan 数 \(C_{n-1}\)。例如 \(n=4\) 时有

\[\frac14\binom63=5 \]

棵。

这里最值得体会的过程是:

\[\text{根与孩子的递归描述} \;\Longrightarrow\; T=x\Phi(T) \;\Longrightarrow\; \text{二项式系数}. \]

你甚至不需要解那个二次方程。

2.把 \(T\) 换成 \(T^k\):从一棵树变成森林

仍然使用上面的有根有序树:

\[T=\frac{x}{1-T}. \]

现在要数的是:依次摆放的 \(k\) 棵非空树,总结点数为 \(n\)。

每棵树对应一个 \(T\),所以生成函数为 \(T^k\)。取 \(H(t)=t^k\):

\[\boxed{ [x^n]T^k=\frac{k}{n}[t^{n-k}]\Phi(t)^n } \qquad(n\ge k\ge1). \]

代入 \(\Phi(t)=(1-t)^{-1}\):

\[\boxed{ [x^n]T^k =\frac{k}{n}\binom{2n-k-1}{n-k}. } \]

例如,两棵树共有四个结点:

\[[x^4]T^2=\frac24\binom52=5. \]

也可以直接检查。两棵树的大小只能是

\[(1,3),\quad(2,2),\quad(3,1), \]

相应方案数为

\[1\cdot2+1\cdot1+2\cdot1=5. \]

这个例子说明 \(H\) 的作用:\(\Phi\) 决定基本对象怎样递归构造,\(H\) 决定你怎样组织这些基本对象。

例如:

表达式 在这个例子中的意义
\(T\) 一棵非空树
\(T^k\) 恰好 \(k\) 棵树组成的有序森林
\(\displaystyle \frac1{1-T}\) 任意多棵树组成的有序森林,包括空森林

最后一个也能直接代入公式。取 \(H(t)=(1-t)^{-1}\),对 \(n\ge1\):

\[\begin{aligned} [x^n]\frac1{1-T} &=\frac1n[t^{n-1}](1-t)^{-n-2}\\ &=\frac1n\binom{2n}{n-1}\\ &=\frac1{n+1}\binom{2n}{n}. \end{aligned} \]

因此任意有序森林的计数又是 Catalan 数 \(C_n\)。

3.在 \(\Phi\) 中加入参数:精确统计每种度数的结点

前面只统计总结点数。现在进一步问:

有多少棵有根有序树,恰有 \(n_0\) 个叶子、\(n_1\) 个一元结点、\(n_2\) 个二元结点,等等?

这里“\(j\) 元结点”指有 \(j\) 个孩子的结点。

让 \(y_j\) 记录 \(j\) 元结点数,就有

\[T=x\bigl(y_0+y_1T+y_2T^2+\cdots\bigr). \]

因为一个有 \(j\) 个孩子的根,贡献为

\[x\,y_jT^j. \]

于是

\[[x^n]T =\frac1n[t^{n-1}] \bigl(y_0+y_1t+y_2t^2+\cdots\bigr)^n. \]

再提取 \(y_0^{n_0}y_1^{n_1}\cdots\) 的系数。要得到这个单项式,必须在 \(n\) 个因子中分别选择 \(n_j\) 次 \(y_jt^j\),所以:

\[\boxed{ \#=\frac1n\frac{n!}{\prod_{j\ge0}n_j!} } \]

前提是

\[\sum_j n_j=n,\qquad \sum_j jn_j=n-1. \]

第一个条件是总结点数;第二个条件是所有结点的孩子数之和等于边数。

例如,恰有三个叶子、两个二元结点:

\[n_0=3,\quad n_2=2,\quad n=5, \]

数量为

\[\frac15\frac{5!}{3!2!}=2. \]

再如,恰有三个叶子、一个一元结点、两个二元结点:

\[n=6,\qquad 0\cdot3+1\cdot1+2\cdot2=5=n-1, \]

数量为

\[\frac16\frac{6!}{3!1!2!}=10. \]

这个例子的用途很广:当题目要求限制叶子数、分叉数、各种结点类型的数量时,可以把这些统计量放进 \(\Phi\) 的系数中。

这里的 \(y_j\) 只是辅助变量,Lagrange 反演仍然针对 \(x\) 使用。

4.换成指数生成函数:求有标号树的数量

现在考虑顶点标号为 \(1,\ldots,n\) 的有根树,孩子之间没有顺序。

这时使用指数生成函数

\[T(x)=\sum_{n\ge1}a_n\frac{x^n}{n!}, \]

其中 \(a_n\) 是有根有标号树的数量。

为什么方程变成

\[T=xe^T? \]

固定根有 \(m\) 棵孩子子树时,\(T^m\) 会把孩子子树排列起来;但孩子之间没有顺序,需要除以 \(m!\)。所以

\[T=x\sum_{m\ge0}\frac{T^m}{m!}=xe^T. \]

现在 \(\Phi(t)=e^t\),于是

\[[x^n]T =\frac1n[t^{n-1}]e^{nt} =\frac1n\frac{n^{n-1}}{(n-1)!} =\frac{n^{n-1}}{n!}. \]

注意指数生成函数的系数要乘回 \(n!\),所以

\[\boxed{a_n=n^{n-1}}. \]

再除以根的 \(n\) 种选择,就得到无根有标号树的数量

\[\boxed{n^{n-2}}\qquad(n\ge2). \]

这里有一个很重要的区分:

Lagrange 反演本身并不区分普通生成函数和指数生成函数。区别在于你如何建立方程,以及如何把系数还原成计数。

同样,取 \(H(t)=t^k\):

\[[x^n]T^k =\frac{k}{n}\frac{n^{n-k}}{(n-k)!}. \]

因此,\(k\) 棵有根有标号树组成的有序森林,总共有 \(n\) 个标号顶点,其数量为

\[\boxed{ n!\,\frac{k}{n}\frac{n^{n-k}}{(n-k)!}. } \]

这里各棵树的根也属于需要选择的结构,不能直接把它理解成“根已经指定”的森林计数。

5.同一个 \(T=xe^T\),比较普通公式与伴随公式的分工

考虑所有映射

\[f:\{1,\ldots,n\}\to\{1,\ldots,n\}. \]

它们当然共有 \(n^n\) 个。现在看看生成函数怎样得到这个结果,以及你的伴随公式为什么刚好有用。

画出有向边 \(v\to f(v)\)。每个连通分量都由以下部分组成:

  • 一个有向环;
  • 环上每个顶点挂着一棵朝向它的有根树。

允许长度为 \(1\) 的环,即自环。这里挂在环上的有根树仍由

\[T=xe^T \]

描述。

先数只有一个连通分量的映射。长度为 \(k\) 的环,对指数生成函数贡献 \(T^k/k\):因为 \(k\) 个对象的有向环排列有 \((k-1)!\) 种,除以 \(k!\) 后剩下 \(1/k\)。

因此连通映射的指数生成函数为

\[C(x)=\sum_{k\ge1}\frac{T^k}{k} =-\log(1-T). \]

这正适合普通的 Lagrange–Bürmann 公式。取

\[H(t)=-\log(1-t),\qquad H'(t)=\frac1{1-t}, \]

得到

\[\begin{aligned} [x^n]C(x) &=\frac1n[t^{n-1}]\frac{e^{nt}}{1-t}\\ &=\frac1n\sum_{j=0}^{n-1}\frac{n^j}{j!}. \end{aligned} \]

所以连通映射的数量为

\[\boxed{ (n-1)!\sum_{j=0}^{n-1}\frac{n^j}{j!}. } \]

例如 \(n=3\) 时是

\[2!\left(1+3+\frac92\right)=17. \]

接下来,任意映射就是若干个连通分量组成的无序集合,所以它的指数生成函数为

\[M(x)=e^{C(x)}=\frac1{1-T}. \]

此时观察到

\[\Phi(t)=e^t,\qquad x\Phi'(T)=xe^T=T. \]

因此

\[\frac1{1-T} =\frac1{1-x\Phi'(T)}. \]

这正是伴随公式的分母。 取 \(H(t)=1\),一步得到

\[[x^n]M(x) =[t^n]e^{nt} =\frac{n^n}{n!}. \]

乘回 \(n!\),就是 \(n^n\)。

这一组最能体现两种公式的不同:

想数什么 生成函数 更直接的公式
连通映射 \(-\log(1-T)\) 普通 Lagrange–Bürmann
所有映射 \(\displaystyle \frac1{1-T}=\frac1{1-x\Phi'(T)}\) 伴随公式

普通公式也能处理 \(1/(1-T)\),但会产生

\[\frac1n[t^{n-1}]\frac{e^{nt}}{(1-t)^2}, \]

计算明显绕一些。伴随公式的优势,是把这个特殊分母直接消掉。

6.专门体会 \(T'\) 公式,以及它和伴随公式的关系

回到有根有序树:

\[T=\frac{x}{1-T},\qquad \Phi(t)=\frac1{1-t}. \]

先求

\[[x^n]T^kT'. \]

表达式已经含有 \(T'\),直接使用你笔记中的第二个公式,取 \(H(t)=t^k\):

\[\begin{aligned} [x^n]T^kT' &=[t^n]t^k(1-t)^{-(n+1)}\\ &=[t^{n-k}](1-t)^{-(n+1)}\\ &=\boxed{\binom{2n-k}{n-k}} \qquad(n\ge k). \end{aligned} \]

为什么导数会自然出现?

如果

\[T(x)=\sum_{m\ge1}a_mx^m, \]

那么

\[T'(x)=\sum_{m\ge1}m a_mx^{m-1}. \]

因此 \(T'\) 可以理解成:

选一棵树,再标记它的一个顶点;这个标记顶点不计入 \(x\) 记录的大小。

所以 \(T^kT'\) 表示:依次放置 \(k\) 棵普通树和一棵带标记顶点的树,统计未标记顶点的总数。

例如 \(k=1,n=2\):

\[[x^2]TT'=\binom31=3. \]

两棵树实际共有三个顶点:

  • 第一棵有一个顶点,第二棵有两个顶点,第二棵有两种标记方式;
  • 第一棵有两个顶点,第二棵有一个顶点,第二棵有一种标记方式。

总共 \(2+1=3\)。

再看伴随公式。由隐式求导,

\[T'=\frac{\Phi(T)}{1-x\Phi'(T)}. \]

这说明,普通的 \(T'\) 除了带来特殊分母,还多带了一个 \(\Phi(T)\)。所以:

\[\begin{aligned} [x^n]T^kT' &=[t^{n-k}]\Phi(t)^{n+1},\\ [x^n]\frac{T^k}{1-x\Phi'(T)} &=[t^{n-k}]\Phi(t)^n. \end{aligned} \]

右边的 \(n+1\) 和 \(n\),就来自这个额外的 \(\Phi(T)\)。

在当前例子中,它们分别是

\[\boxed{ [x^n]T^kT'=\binom{2n-k}{n-k} } \]

和

\[\boxed{ [x^n]\frac{T^k}{1-x/(1-T)^2} =\binom{2n-k-1}{n-k} } \qquad(n\ge1,\ 0\le k\le n). \]

这也提醒你:“标记一个顶点”对应的是 \(xT'\),不能一般性地把伴随公式中的分母直接解释为标记一个顶点。 两者之间还有 \(\Phi(T)\) 这个因子。

关于伴随公式

1.为什么伴随公式会出现这个分母:一条可以不断延长的路径

记

\[T=x\Phi(T),\qquad D(x)=\frac1{1-x\Phi'(T)}. \]

把分母展开:

\[D(x)=\sum_{\ell\ge0}\bigl(x\Phi'(T)\bigr)^\ell. \]

这说明:如果某种结构由一条路径构成,每一步贡献 \(x\Phi'(T)\),那么它的生成函数就是 \(D(x)\)。

为什么“一步”会贡献 \(\Phi'(T)\)?

假设

\[\Phi(t)=\sum_{j\ge0}w_jt^j. \]

普通树结点有 \(j\) 个孩子时,贡献为

\[xw_jT^j. \]

现在让其中一个孩子位置用来延续路径:

  • 有 \(j\) 种位置可以选;
  • 剩下 \(j-1\) 个位置各挂一棵普通树。

于是这一步贡献

\[x\sum_{j\ge1}jw_jT^{j-1} =x\Phi'(T). \]

所以这个分母与“选择一个孩子方向继续向下,其他方向挂普通树”有直接联系。

路径末端再接上生成函数为 \(H(T)\) 的结构,就得到

\[\frac{H(T)}{1-x\Phi'(T)}. \]

伴随公式恰好负责计算:

\[\boxed{ [x^n]\frac{H(T)}{1-x\Phi'(T)} =[t^n]H(t)\Phi(t)^n. } \]

下面给出几个具体应用。

2.应用一:有左右孩子位置的二叉树,标记一个空位置

考虑这样的二叉树:每个结点有左、右两个孩子位置,每个位置可以为空,也可以放一棵非空树。

令 \(T\) 统计非空树,\(x\) 统计结点数,则

\[T=x(1+T)^2, \qquad \Phi(t)=(1+t)^2. \]

现在要数:

有 \(n\) 个结点,并且标记了一个空孩子位置的二叉树。还允许空树本身,其唯一空位置被标记。

从根走向这个被标记的空位置,会得到一条路径。路径上的每个结点:

  • 选择向左还是向右继续:\(2\) 种;
  • 另一个孩子位置为空或挂树:贡献 \(1+T\);
  • 当前结点贡献 \(x\)。

所以一步贡献

\[2x(1+T)=x\Phi'(T). \]

路径可以有任意长度,因此目标生成函数就是

\[D(x)=\frac1{1-2x(1+T)}. \]

取伴随公式中的 \(H(t)=1\):

\[\begin{aligned} [x^n]D(x) &=[t^n](1+t)^{2n}\\ &=\boxed{\binom{2n}{n}}. \end{aligned} \]

这还能用另一种方式核对:

  • 有 \(n\) 个结点的这种二叉树有 \(C_n\) 棵;
  • 每棵恰有 \(n+1\) 个空孩子位置。

所以总数为

\[(n+1)C_n =(n+1)\frac1{n+1}\binom{2n}{n} =\binom{2n}{n}. \]

在这个例子里,分母不是题目直接给出的,而是通过“根到被标记空位置的路径”建立出来的。

3.应用二:有根有序树,标记一个可以插入新叶子的位置

这次回到

\[T=\frac{x}{1-T}, \qquad \Phi(t)=\frac1{1-t}. \]

如果一个结点有 \(d\) 个有序孩子,那么可以插入一个新叶子的位置有 \(d+1\) 个:最前面、相邻孩子之间、最后面。

我们要数:

一棵有根有序树,并标记一个这样的插入位置。

仍然沿着根走向被标记位置。

路径上的一个结点,在通向目标的方向两边,各有一个任意长的孩子序列,所以一步贡献

\[x\cdot\frac1{1-T}\cdot\frac1{1-T} =\frac{x}{(1-T)^2} =x\Phi'(T). \]

到达最后的结点时,标记它的某个插入位置。同样,插入位置两边各是一个孩子序列,因此末端贡献

\[\frac{x}{(1-T)^2}. \]

所以目标生成函数为

\[A(x)= \frac{x}{(1-T)^2} \cdot \frac1{1-x/(1-T)^2}. \]

(注:这里可以和上一点一样认为最后递归到空节点停止,两种方法只在 \(n = 0\) 时有差距。)

对 \(n\ge1\),先把外面的 \(x\) 提出去,再使用伴随公式:

\[\begin{aligned} [x^n]A(x) &=[x^{n-1}] \frac{(1-T)^{-2}}{1-x\Phi'(T)}\\ &=[t^{n-1}](1-t)^{-2}\Phi(t)^{n-1}\\ &=[t^{n-1}](1-t)^{-n-1}\\ &=\boxed{\binom{2n-1}{n-1}}. \end{aligned} \]

也可以直接核对。一棵有 \(n\) 个结点的树,其所有插入位置总数是

\[\sum_v(\text{孩子数}(v)+1) =(n-1)+n=2n-1. \]

所以答案应当是

\[(2n-1)C_{n-1} =\binom{2n-1}{n-1}, \]

与伴随公式一致。

这个例子展示的是:路径末端并不一定贡献 \(1\),它可以贡献一个额外的 \(H(T)\)。

5.应用三:不限制中途高度的格路,反而比树更容易计算

伴随公式还能把树的隐式生成函数,与“不限制中途高度的步行”联系起来。

取

\[\Phi(t)=1+t+t^2,\qquad T=x(1+T+T^2). \]

考虑长度为 \(n\) 的步行,每一步可以:

  • 高度减 \(1\);
  • 高度不变;
  • 高度加 \(1\)。

从高度 \(0\) 出发,要求最后回到 \(0\),中途允许到负高度。

用 \(t\) 记录高度变化,一步的生成式是

\[t^{-1}+1+t. \]

因此步行数量为

\[\begin{aligned} [t^0](t^{-1}+1+t)^n &=[t^n](1+t+t^2)^n\\ &=[t^n]\Phi(t)^n. \end{aligned} \]

伴随公式告诉我们,它也等于

\[\boxed{ [x^n]\frac1{1-x(1+2T)}. } \]

还可以把隐式的 \(T\) 消掉。由

\[xT^2+(x-1)T+x=0 \]

以及 \(T(0)=0\),得到

\[T=\frac{1-x-\sqrt{1-2x-3x^2}}{2x}. \]

于是

\[1-x(1+2T)=\sqrt{1-2x-3x^2}. \]

所以这些步行的生成函数是

\[\boxed{ \sum_{n\ge0}[t^n](1+t+t^2)^n x^n =\frac1{\sqrt{1-2x-3x^2}}. } \]

如何展开右式:
可以用广义二项式展开:

\[(1-z)^{-1/2} =\sum_{m\ge0}\frac{\binom{2m}{m}}{4^m}z^m. \]

代入 \(z=2x+3x^2\),得到

\[\boxed{ \frac1{\sqrt{1-2x-3x^2}} =\sum_{m\ge0}\frac{\binom{2m}{m}}{4^m}(2x+3x^2)^m. } \]

不过这里每一项还含有多个不同次数的 \(x\)。如果想得到更方便提取系数的展开,可以先改写根号里的式子:

\[1-2x-3x^2=(1-x)^2-4x^2. \]

因此

\[\begin{aligned} \frac1{\sqrt{1-2x-3x^2}} &=\frac1{1-x} \left(1-\frac{4x^2}{(1-x)^2}\right)^{-1/2}\\ &=\frac1{1-x} \sum_{k\ge0}\frac{\binom{2k}{k}}{4^k} \left(\frac{4x^2}{(1-x)^2}\right)^k\\ &=\sum_{k\ge0}\binom{2k}{k}x^{2k}(1-x)^{-2k-1}. \end{aligned} \]

再使用

\[[x^r](1-x)^{-s}=\binom{s+r-1}{r}, \]

就有

\[\begin{aligned} [x^n]\frac1{\sqrt{1-2x-3x^2}} &=\sum_{k=0}^{\lfloor n/2\rfloor} \binom{2k}{k} [x^{n-2k}](1-x)^{-2k-1}\\ &=\boxed{ \sum_{k=0}^{\lfloor n/2\rfloor} \binom{2k}{k}\binom{n}{2k} }\\ &=\boxed{ \sum_{k=0}^{\lfloor n/2\rfloor} \frac{n!}{k!^2(n-2k)!} }. \end{aligned} \]

例如 \(n=3\):

  • 三步全为平步:\(1\) 种;
  • 上、下、平各一步:\(3!=6\) 种。

共 \(7\) 种,也就是

\[[t^3](1+t+t^2)^3=7. \]

更一般地,若

\[\Phi(t)=\sum_{j\ge0}w_jt^j, \]

把第 \(j\) 种步长定义为 \(j-1\),权重为 \(w_j\),那么

\[[t^n]\Phi(t)^n \]

正好统计长度为 \(n\)、总高度变化为 \(0\) 的加权步行。因此

\[\boxed{ \frac1{1-x\Phi'(T)} } \]

也可以作为这类步行的生成函数。

???

你觉得这个分母罕见,是因为它往往藏在结构分解或者代数改写里面。目前可以先记住两个识别方向:

  • 有一条被选定的路径,每个结点选一个孩子继续,其他孩子挂普通树:尝试写出 \(x\Phi'(T)\)。
  • 系数出现 \([t^n]\Phi(t)^n\),例如平衡步行的计数:可以反过来用伴随公式,把整列系数写成生成函数。

前面映射计数中的 \(1/(1-T)\),则是第三种特别简洁的情况:因为 \(\Phi=e^t\) 满足 \(\Phi'=\Phi\),这个分母刚好直接变成 \(1-x\Phi'(T)\)。

总结

实际做题时,可以按以下顺序识别:

  1. 先找递归核心。 能否把未知生成函数写成 \(T=x\Phi(T)\)?
  2. 再看目标表达式。 是 \(H(T)\)、\(H(T)T'\),还是带有 \(1-x\Phi'(T)\) 的分母?
  3. 最后才展开。 反演之后,通常只剩二项式、多项式或指数函数的系数提取。
posted @ 2026-10-15 21:44  rizynvu  阅读(14)  评论(0)    收藏  举报