P4463 [集训队互测2012] calc 拉格朗日插值 dp 多项式分析
LINK:calc
容易得到一个nk的dp做法 同时发现走不通了 此时可以考虑暴力生成函数。
不过化简那套不太熟 且最后需要求多项式幂级数及多项式exp等难写的东西。
这里考虑观察优化dp的做法。
不容易看出 f(n,k)是关于k的2n+1次多项式。
证明可以用数学归纳法证明 且还可以从非常规律的转移中看出这应该是一个形似多项式的东西。
可以直接O(n)拉格朗日插值 不过这里懒得写因为 外面dp是\(n^2\)求点值的所以这里没必要O(n).
注意初始化.
const ll MAXN=1010;
ll n,mod,k;
ll f[MAXN][MAXN];
ll x[MAXN],y[MAXN];
inline ll ksm(ll b,ll p)
{
ll cnt=1;
while(p)
{
if(p&1)cnt=cnt*b%mod;
p=p>>1;b=b*b%mod;
}
return cnt;
}
inline ll lagrange(ll m,ll z)
{
rep(1,m,i)x[i]=i,y[i]=f[n][i];
ll ans=0;
rep(1,m,i)
{
ll cnt1=1,cnt2=1;
rep(1,m,j)if(i!=j)cnt1=(cnt1*(z-x[j]))%mod,cnt2=(cnt2*(x[i]-x[j]))%mod;
cnt2=ksm(cnt2,mod-2);
cnt1=cnt1*cnt2%mod*y[i]%mod;
ans=(ans+cnt1)%mod;
}
return (ans+mod)%mod;
}
signed main()
{
freopen("1.in","r",stdin);
get(k);get(n);get(mod);ll ans=1;
rep(0,(n<<1|1),j)f[0][j]=1;
rep(1,n,i)
{
ans=ans*i%mod;
rep(1,min(k,(n<<1|1)),j)f[i][j]=(j*f[i-1][j-1]+f[i][j-1])%mod;
}
if(k<=(n<<1|1))putl(ans*f[n][k]%mod);
else putl(lagrange(n<<1|1,k)*ans%mod);
return 0;
}
P4463 [集训队互测2012] calc 拉格朗日插值 dp 多项式分析的更多相关文章
- 洛谷 P4463 - [集训队互测 2012] calc(多项式)
题面传送门 & 加强版题面传送门 竟然能独立做出 jxd 互测的题(及其加强版),震撼震撼(((故写题解以祭之 首先由于 \(a_1,a_2,\cdots,a_n\) 互不相同,故可以考虑求出 ...
- [JZOJ2865]【集训队互测 2012】Attack
题目 题目大意 平面上有一堆带权值的点.两种操作:交换两个点的权值,查找一个矩形的第\(k\)小 \(N<=60000\) \(M<=10000\) \(10000ms\) 思考历程&am ...
- [JZOJ2866] 【集训队互测 2012】Bomb
题目 题目大意 给你一个有\(n\)个点的平面. 选择三个点,求两两之间曼哈顿距离和的最大值和最小值. 思考历程&正解 比赛的时候没有想太多,但感觉似乎比较水-- 首先有个很显然的性质,答案为 ...
- 【loj2461】【2018集训队互测Day 1】完美的队列
#2461. 「2018 集训队互测 Day 1」完美的队列 传送门: https://loj.ac/problem/2461 题解: 直接做可能一次操作加入队列同时会弹出很多数字,无法维护:一个操作 ...
- 【2018集训队互测】【XSY3372】取石子
题目来源:2018集训队互测 Round17 T2 题意: 题解: 显然我是不可能想出来的……但是觉得这题题解太神了就来搬(chao)一下……Orzpyz! 显然不会无解…… 为了方便计算石子个数,在 ...
- [JZOJ6088] [BZOJ5376] [loj #2463]【2018集训队互测Day 1】完美的旅行【线性递推】【多项式】【FWT】
Description Solution 我们考虑将问题一步步拆解 第一步求出\(F_{S,i}\)表示一次旅行按位与的值为S,走了i步的方案数. 第二步答案是\(F_{S,i}\)的二维重复卷积,记 ...
- bzoj 2655 calc —— 拉格朗日插值
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2655 先设 f[i][j] 表示长度为 i 的序列,范围是 1~j 的答案: 则 f[i][ ...
- BZOJ 2655: calc(拉格朗日插值)
传送门 解题思路 首先比较容易能想到\(dp\),设\(f[i][j]\)表示前\(j\)个数,每个数\(<=i\)的答案,那么有转移方程:\(f[i][j]=f[i-1][j-1]*i*j+f ...
- Wannafly Winter Camp 2020 Day 5F Inversion Pairs - 拉格朗日插值,dp
给定 \(n \leq 10^7\),求所有 \(n\) 的全排列的逆序对个数的 \(k \leq 100\) 次方和 Solution \(f[i][j]\) 表示 \(i\) 个元素,逆序对个数为 ...
随机推荐
- C#字符串拼接
var name = "李哈哈"; var t = $"我是{name}";
- AMAP-TECH算法大赛开赛!基于车载视频图像的动态路况分析
阿里巴巴高德地图AMAP-TECH算法大赛于7月8日开启初赛,赛题为「基于车载视频图像的动态路况分析」,活动邀请了业界权威专家担任评委,优秀选手不仅可以瓜分丰厚的奖金,领取荣誉证书,还有机会进入高德地 ...
- CTF_show平台 web题解 part3
web13 题目显示文件上传,各类型上传均提示错误,在使用ctf-scan扫描的时候,发现upload.php.bak. 查看源码: <?php header("content-typ ...
- node+express实现简单的增删改查
var express = require('express'); var bodyParser = require("body-parser"); var cors = requ ...
- TB6560电机驱动器参数设置
TB6560电机驱动器参数设置 最近接触了一些步进电机的开发,整理了一些参数设置的经验,希望能帮助到有需要的人儿~ 步进电机主要按一定的给电规律,给对应的绕组响应的电信号,电机将按一定的方向运行,而且 ...
- 数据可视化之powerBI入门(三)财务人员必学,使用Powerquery是一种什么体验?
https://zhuanlan.zhihu.com/p/54700574 财务人员必学,使用Powerquery是一种什么体验? 你和Excel高手的距离只差了一个Power Query!!! 先思 ...
- 数据可视化实例(十): 相关图(matplotlib,pandas)
相关图 https://datawhalechina.github.io/pms50/#/chapter8/chapter8 导入所需要的库 import numpy as np # 导入numpy库 ...
- python 面向对象专题(四):封装、多态、鸭子类型、类的约束、super
https://www.cnblogs.com/liubing8/p/11321099.html 目录 Python面向对象04 /封装.多态.鸭子类型.类的约束.super 1. 封装 2. 多态 ...
- Iphone上对于动态生成的html元素绑定点击事件$(document).click()失效解决办法
在Iphone上,新生成的DOM元素不支持$(document).click的绑定方法,该怎么办呢? 百度了N久都没找到解决办法,在快要走投无路之时,试了试Google,我去,还真找到了,歪国人就是牛 ...
- 搭建私有Docker镜像仓库
安装Docker yum install docker -y 配置阿里镜像加速网址 sudo tee /etc/docker/daemon.json << EOF { "regi ...