bzoj 3453 tyvj 1858 XLkxc 拉格朗日插值
tyvj 1858 XLkxc
Time Limit: 20 Sec Memory Limit: 128 MB
Submit: 267 Solved: 130
[Submit][Status][Discuss]
Description
神犇LYD虐完HEOI之后给傻×XLk出了一题:
SHY是某国的公主,平时的一大爱好是读诗...(中间略)...结果mod p就可以了
简明题意
给定 k,a,n,d,p
f(i)=1^k+2^k+3^k+......+i^k
g(x)=f(1)+f(2)+f(3)+....+f(x)
求(g(a)+g(a+d)+g(a+2d)+......+g(a+nd))mod p
对于所有数据
1<=k<=123
0<=a,n,d<=123456789
p==1234567891
Input
第一行数据组数,(保证小于6)
以下每行四个整数 k,a,n,d
Output
每行一个结果。
Sample Input
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Sample Output
5
5
5
5
HINT
Source
这些是很明显的,因为这个就是需要求的东西。
然后接下来怎么处理是关键。
对我来说的话,应该是手足无措的,但是某些大佬将其作差,
对于g作k+3次差分后其项为0,所以说g是一个最高项为k+2次的多项式,
对于f 作k+5次差分后其项为0,所以说f 是一个最高项为k+4次的多项式
所以说,因为k不大,所以每次O(k^2)的时间求出g,前缀和一下就可以了
然后知道了f的点值后就可以再一次k^2的时间求出n的值
复杂度是Tk^3
第64行中求值的时候取模的可以将每一项都模p,这个应该可以理解
1 #include<cstring> 2 #include<iostream> 3 #include<cstdio> 4 #include<algorithm> 5 #include<cmath> 6 7 #define p 1234567891 8 #define N 157 9 #define ll long long 10 using namespace std; 11 inline int read() 12 { 13 int x=0,f=1;char ch=getchar(); 14 while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();} 15 while(isdigit(ch)){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();} 16 return x*f; 17 } 18 19 ll a,n,d,m,k; 20 ll s1[N],s2[N]; 21 ll g[N],f[N],inv[N<<1]; 22 23 ll fast_pow(ll a,ll b) 24 { 25 ll ans=1; 26 while(b) 27 { 28 if (b&1) (ans*=a)%=p; 29 (a*=a)%=p; 30 b>>=1; 31 } 32 return ans; 33 } 34 inline ll Lagrange(ll *a,int n,ll pos) 35 { 36 if (pos<=n) return a[pos]; 37 ll ans=0; 38 for (int i=1;i<=n;i++) 39 { 40 ll s1=1,s2=1; 41 for (int j=1;j<=n;j++) 42 if (i!=j) 43 { 44 (s1*=(pos-j))%=p; 45 (s2*=(i-j))%=p; 46 } 47 (ans+=a[i]*s1%p*fast_pow(s2,p-2))%=p; 48 } 49 return ans; 50 } 51 int main() 52 { 53 freopen("fzy.in","r",stdin); 54 freopen("fzy.out","w",stdout); 55 56 int T=read(); 57 while(T--) 58 { 59 k=read(),a=read(),n=read(),d=read(); 60 for (int i=1;i<=k+3;i++) g[i]=fast_pow(i,k); 61 for (int i=2;i<=k+3;i++) (g[i]+=g[i-1])%=p; 62 for (int i=2;i<=k+3;i++) (g[i]+=g[i-1])%=p; 63 f[0]=Lagrange(g,k+3,a); 64 for (int i=1;i<=k+5;i++) f[i]=Lagrange(g,k+3,(i*d+a)%p),(f[i]+=f[i-1])%=p; 65 printf("%lld\n",(Lagrange(f,k+5,n)+p)%p); 66 } 67 }
转载于:https://www.cnblogs.com/fengzhiyuan/p/8646464.html
bzoj 3453 tyvj 1858 XLkxc 拉格朗日插值相关推荐
- 【BZOJ】2655: calc 动态规划+拉格朗日插值
[题意]一个序列$a_1,...,a_n$合法当且仅当它们都是[1,A]中的数字且互不相同,一个序列的价值定义为数字的乘积,求所有序列的价值和.n<=500,A<=10^9,n+1< ...
- BZOJ 2137 submultiple(约数,拉格朗日插值求自然数k次幂和)【BZOJ 修复工程】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2137 是 hydro 的 BZOJ ...
- bzoj 5339 [TJOI2018]教科书般的亵渎 拉格朗日插值
题面 题目传送门 解法 可以发现,题目可以转化成求若干个形如\(\sum_{i=1}^ni^k\)的东西 这个东西可以拉格朗日插值 大概讲一下拉格朗日插值是个什么东西: 显然,\(\sum_{i=1} ...
- bzoj 4559 [JLoi2016]成绩比较 —— DP+拉格朗日插值
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4559 看了看拉格朗日插值:http://www.cnblogs.com/ECJTUACM-8 ...
- 解题报告(三)多项式求值与插值(拉格朗日插值)(ACM / OI)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值) Problem Sol ...
- 牛客挑战赛36 D. 排名估算( “概率论全家桶”,好题,拉格朗日插值求自然数 k 次幂之和)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://ac.nowcoder.com/acm/contest/3782/D ...
- P5667 拉格朗日插值2(拉格朗日插值,NTT, 倒推求逆元)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P5667 Prob ...
- 【学习笔记】拉格朗日插值
整理的算法模板合集: ACM模板 目录 P4781 [模板]拉格朗日插值 重心拉格朗日插值法 拉格朗日插值法求系数 自然数k次幂的和 点我看多项式全家桶(●'◡'●) P4781 [模板]拉格朗日插值 ...
最新文章
- 一个较为详细的ETL系统实现方案
- String.replaceAll() 正则表达式
- 调整cpu和内存查看子机配置
- pythonui自动化测试平台_django+appium实现UI自动化测试平台(开源部分,可定制开发)...
- 原码,反码,补码,移码四种机器码的表示方法及0的四种表示方法
- 移动端返回上一页实现方法
- AI本质就是“暴力计算”?看华为云如何应对算力挑战
- 查看欧拉系统服务器ip,euler os 查看center进程命令
- 稳扎稳打Silverlight(25) - 2.0线程之Thread, Timer, BackgroundWorker, ThreadPool
- 【图文详解】,配置NLB群集
- webstrom默认是白色背景,如何修改
- java day58【 案例:使用 spring 的 IoC 的实现账户的 CRUD 、 基于注解的 IOC 配置 、 Spring 整合 Junit[掌握] 】...
- 链表节点的删除(链表data升序有重复)
- AMPL实现中国邮递员问题,你get到了吗
- 邮政社招笔试题库_中国邮政招聘笔试:笔试练习题1
- 数据驱动的综合能源系统
- 安全测试之sql注入
- git通过http的方式下载和提交代码
- 苹果删文件后无服务器,iOS13描述文件可以删除吗?iPhone删除描述文件图文教程...
- 疯狂打CALL,机器人抢镜时尚大典
热门文章
- [架构之路-190]-《软考-系统分析师》-4-据通信与计算机网络-5-图解CRC计算方法与步骤
- swagger2 域名访问问题,改变Request URL 属性
- Fmoc-NH-PEG-COOH芴甲氧基羰基保护氨基-聚乙二醇-羧基;PEG分子量2000
- 2019清华大学计算机专业分数线,清华大学专业目录 2019录取分数线是多少
- 清华计算机系转专业,清华大学可以转专业吗 清华大学新生转专业政策
- AES cbc加密开源库收集
- rpm和yum/dnf 安装方式与区别
- 个人博客上线了!!!(官宣
- 什么是用户标签?其实很好理解
- go get google.golang.org/grpc 解决办法汇总