【ybt金牌导航8-3-6】【luogu P3270】成绩比较(DP)(拉格朗日插值)
成绩比较
题目链接:ybt金牌导航8-3-6 / luogu P3270
题目大意
有 n 个人,第一个是自己,然后每个人每科有分数,给你科目数量,科目最高分,你的排名(排名比你高的分数都比你大,排名比你低的分数都比你小)。
然后告诉了你你完胜了多少个人(即每一科都大于等于它),然后问你有多少种满足条件的分数情况。
只要有一个人有一科的分数不同,那这个分数情况就是不同的。
思路
我们考虑 DP,设 为当前看了前 科,暂时完胜 个人。
显然初始化 。
然后考虑转移:(先把式子给出来)
我们可以把这个转移分成三部分分别解释:
:这个显然。
:我们考虑从原本 个完胜的选出 个继续完胜,那就是 ,然后你胜的次数就用了 ,一共能胜的次数是 (败的次数是 ),还有 次,随机分配给剩下的。
然后要注意的是部分分派给 个中没有被选到的,所以是 。
:这个就是你要给所有人分配分数(你前面只是分配了排名)
然后你就考虑枚举自己的分数,那我们已经知道它胜了 个人,败了 个人。
那其他人之间的胜负我们不用管,所以被胜的人可以选 (记得可以相同),一共是 种,所以是 。被败的人可以选 ,一共是 ,所以是 。
然后我们发现 很大。
然后我们考虑优化这一维,观察发现 和 在枚举 的时候已经固定。
那就相当于 这种形式。
然后你会发现这两个分别是 项的多项式,然后乘在一起就是 项,在原式中 ,所以 ,那前缀和一下就是 项的多项式!
那多项式我们就可以直接用拉格朗日插值来求 时的值了。
(我写题的时候没细看用了 项的,不过都无所谓可以过)
然后就搞好了。
代码
__EOF__

本文作者:あおいSakura
本文链接:https://www.cnblogs.com/Sakura-TJH/p/YBT_JPDH_8-3-6.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Sakura-TJH/p/YBT_JPDH_8-3-6.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现