码迷,mamicode.com
首页 > 其他好文 > 详细

[JLOI2016] 成绩比较

时间:2019-03-18 21:10:58      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:inline   n+1   lin   描述   方案   rac   取值   span   合数   

推石子

首先设\(d[i]=\sum_{t=1}^{U[i]}t^{n-R[i]}(U[i]-t)^{R[i]-1}\),即第\(i\)门课程分数的合法分布方案数;

然后设\(f[i,j]\)表示前\(i\)门课程中\(j\)个人被碾压的合法方案数,转移有:
\[ \begin{aligned} &f[i,j]=d[i]\times\sum_{k=1}^n\pmatrix{k\\k-j}\pmatrix{n-k-1\\(R[i]-1)-(k-j)}f[i-1,k] &f[0,n-1]=1 \end{aligned} \]
意义为:决策中之前被碾压的\(k\)个中\(k-j\)个翻身了(这一课程的成绩高于B神),没被碾压的\(n-k-1\)个中则剩\((R[i]-1)-(k-j)\)个成绩高于B神,取组合数。

重头戏来了:如何处理\(d[i]\)?

拉格朗日插值

问题描述:已知\(n\)次多项式多项式\(P(x)\)经过了\(n+1\)个不重点\(\{(x_n,y_n)\}\),求\(P(k)?\)

高斯消元求系数表达式什么的就别来了。

构造\(n\)个拉格朗日基本多项式\(\ell_j(x)=\prod_{i\not= j} \dfrac{x-x_i}{x_j-x_i}\),容易得到\(\ell_j(x_j)=1\)\(\ell_j(x_i\mid i\not=j)=0\);于是顺理成章地可以构造出\(P(x)?\)
\[ P(x)=\sum_{i=0}^ny_i\ell_i(x) \]
构造\(\{\ell_{j}(x)\}\)\(O(n^2)\)的,构造\(P(x)\)以及代值计算均是\(O(n)\)的,故总时间复杂度为\(O(n^2)\)

回溯到本题,可以将\(d[i]\)看作一个\(n\)次多项式\(P(x)\)\(U[i]\)处的取值,可以插值计算了。

参考实现

我已经是个嘴巴选手了还要什么实现?留坑逃

[JLOI2016] 成绩比较

标签:inline   n+1   lin   描述   方案   rac   取值   span   合数   

原文地址:https://www.cnblogs.com/nosta/p/10554883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!