[JLOI2016] 成绩比较
Posted nosta
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[JLOI2016] 成绩比较相关的知识,希望对你有一定的参考价值。
推石子
首先设(d[i]=sum_{t=1}^{U[i]}t^{n-R[i]}(U[i]-t)^{R[i]-1}),即第(i)门课程分数的合法分布方案数;
然后设(f[i,j])表示前(i)门课程中(j)个人被碾压的合法方案数,转移有:
[
egin{aligned}
&f[i,j]=d[i] imessum_{k=1}^npmatrix{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
ot= j} dfrac{x-x_i}{x_j-x_i}),容易得到(ell_j(x_j)=1),(ell_j(x_imid i
ot=j)=0);于是顺理成章地可以构造出(P(x)?)来
[
P(x)=sum_{i=0}^ny_iell_i(x)
]
构造({ell_{j}(x)})是(O(n^2))的,构造(P(x))以及代值计算均是(O(n))的,故总时间复杂度为(O(n^2))。
回溯到本题,可以将(d[i])看作一个(n)次多项式(P(x))在(U[i])处的取值,可以插值计算了。
参考实现
我已经是个嘴巴选手了还要什么实现?留坑逃
以上是关于[JLOI2016] 成绩比较的主要内容,如果未能解决你的问题,请参考以下文章
BZOJ4559[JLoi2016]成绩比较 动态规划+容斥+组合数学
bzoj 4559 [JLoi2016]成绩比较——拉格朗日插值