[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] 成绩比较的主要内容,如果未能解决你的问题,请参考以下文章

[JLOI2016] 成绩比较

BZOJ4559[JLoi2016]成绩比较 动态规划+容斥+组合数学

bzoj 4559 [JLoi2016]成绩比较——拉格朗日插值

bzoj 4559 [JLoi2016]成绩比较 —— DP+拉格朗日插值

●BZOJ 4559 [JLoi2016]成绩比较

LuoguP3270[JLOI2016] 成绩比较