[题意]一个序列$a_1,...,a_n$合法当且仅当它们都是[1,A]中的数字且互不相同,一个序列的价值定义为数字的乘积,求所有序列的价值和.n<=500,A<=10^9,n+1<A<mod<=10^9,mod是素数. [算法]动态规划+拉格朗日插值 [题解]这道题每个数字的贡献和序列选了的数字积关系密切,所以不能从序列角度考虑(和具体数字关系不大). 设$f_{n,m}$表示前n个数字(值域)中取m个数字的答案,那么枚举取或不取数字n,取n时乘n且有j个位置可以插入,即:…
这个题我们首先可以dp,f[i][j]表示前i个科目恰好碾压了j个人的方案数,然后进行转移.我们先不考虑每个人的分数,先只关心和B的相对大小关系.我们设R[i]为第i科比B分数少的人数,则有f[i][j]=sum f[i-1][k]*C(k,j)*C(n-1-k,R[i]-j)  (k>=j) 怎么解释呢,首先前i-1科有k个人已经被碾压,k肯定大于等于j,然后考虑当前这一科有j个人被碾压,那么就需要从k个人中选出j个来即C(k,j),然后从剩下的有R[i]-j个人比B考的少,这些人必须是之前i…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4559 看了看拉格朗日插值:http://www.cnblogs.com/ECJTUACM-873284962/p/6833391.html https://blog.csdn.net/lvzelong2014/article/details/79159346 https://blog.csdn.net/qq_35649707/article/details/78018944 还只会最简单的…
传送门 挺神仙的啊-- 设\(f[i][j]\)为考虑前\(i\)门课程,有\(j\)个人被\(B\)爷碾压的方案数,那么转移为\[f[i][j]=\sum_{k=j}^{n-1}f[i-1][k]\times {k \choose k-j}\times {n-1-k \choose r[i]-1-(k-j)}\times g(i)\] 解释一下,就是考虑第\(i\)门课,枚举在这之前分比\(B\)爷高的人数\(k\),要从中选出\(k-j\)个使得他们这一门课的分数比\(B\)爷高,然后在剩下…
题意 题目链接 Sol 想不到想不到.. 首先在不考虑每个人的真是成绩的情况下,设\(f[i][j]\)表示考虑了前\(i\)个人,有\(j\)个人被碾压的方案数 转移方程:\[f[i][j] = \sum_{k = j}^n f[i -1][k] C_{k}^{k - j} C_{N - k}^{r[i] - 1 - (k - j)} * g(i)\] 大概解释一下,枚举的\(k\)表示之前碾压了多少,首先我们凑出\(j\)个人继续碾压,也就是说会有\(k - j\)个人该课的分数比\(B\)…
http://www.lydsy.com/JudgeOnline/problem.php?id=4559 f[i][j] 表示前i门课,有j个人没有被碾压的方案数 g[i] 表示第i门课,满足B神排名的分数安排方案数 g[i]的求法: 枚举B神这门课x分,则有n-Ri个人的分数<=x ,Ri-1个人的分数>x Ui 上限是1e9,但是g[i] 是一个关于Ui 的n次多项式,所以可以用拉格朗日插值法来求 递推 f[i][j]: 假设f[i-1][w] 转移到了f[i][j],j>=w 前i…
[BZOJ4559]成绩比较(动态规划,拉格朗日插值) 题面 BZOJ 洛谷 题解 显然可以每门课顺次考虑, 设\(f[i][j]\)表示前\(i\)门课程\(zsy\)恰好碾压了\(j\)个\(yyb\)的方案数. 那么,思考转移,显然是原来碾压了\(k\)个人,但是在考虑到这一门课程的时候有些人没被碾压了, 所以转移就是\(f[i][j]=f[i-1][k]*C_k^j*C_{n-k-1}^{n-rank[i]-j}*P[i]\) 大致的含义就是,原先\(zsy\)碾压了\(k\)个人,但是…
[BZOJ2655]Calc(多项式插值,动态规划) 题面 BZOJ 题解 考虑如何\(dp\) 设\(f[i][j]\)表示选择了\(i\)个数并且值域在\([1,j]\)的答案. \(f[i][j]=f[i-1][j-1]*i*j+f[i][j-1]\) 即不考虑选择\(j\),以及当前选择\(j\),那么枚举是哪个数,转移即可. 时间复杂度\(O(An)\). 碰到这种东西我们直接假装它是一个若干次的多项式. 先假设是个\(n\)次多项式,发现不对, 再试试\(2n\)次多项式,恩,很对,…
[模板]拉格朗日插值 题目描述 由小学知识可知,$n$个点$(x_i,y_i)$可以唯一地确定一个多项式 现在,给定$n$个点,请你确定这个多项式,并将$k$代入求值 求出的值对$998244353$取模 说明 $n \leq 2000 \; \; \; x_i,y_i,k \leq 998244353$ 自为风月马前卒的分析 拉格朗日插值法 众所周知,\(n + 1\)个\(x\)坐标不同的点可以确定唯一的最高为\(n\)次的多项式.在算法竞赛中,我们常常会碰到一类题目,题目中直接或间接的给出…
LINK:成绩比较 大体思路不再赘述 这里只说几个我犯错的地方. 拉格朗日插值的时候 明明是n次多项式 我只带了n个值进去 导致一直GG. 拉格朗日插值的时候 由于是从1开始的 所以分母是\((i-1)!(n-1)\) 但是一直写成i! 心态炸裂. 还有就是 明明是分母 要求逆啊 直接乘 然后人没了. 最后是 关于答案的统计 由于被碾压的同学 每一科分数永远小于B神 所以 可以不考虑顺序的 将成绩分配给他们. 而 没有被碾压的同学 不可以直接分配 对于每一种方案来说 他们都是可以选择自由分配的…