http://192.168.102.138/JudgeOnline/problem.php?id=3170

知识点:1.拉格朗日插值(多特殊函数相加)

    2.这个式子看似非常复杂,然而只要明白这个式子拆开是一个只有一个变量的多项式就OK,不管这个多项式有多复杂,但只要知道k+4个点的点值,就可以使用插值给弄出来

    3.这题要求的式子其实拆开后与a和d并无关系,只是一个有k+4项的多项式,所以我们插值取的x与a,d并无关系

#include <bits/stdc++.h>
#define p 1234567891
#define N 157
#define ll long long
using namespace std;
ll a,n,d,m,k;
ll s1[N],s2[N];
ll g[N],f[N],inv[N<<];
int read()
{
int tt;
scanf("%d",&tt);
return tt;
}
ll fast_pow(ll a,ll b)
{
ll ans = ;
while(b)
{
if (b & )
(ans *= a) %= p;
(a *= a) %= p;
b >>= ;
}
return ans;
}
inline ll Lagrange(ll *a,int n,ll pos)
{
if (pos <= n) return a[pos];
ll ans = ;
for (int i = ;i <= n;i++)
{
ll s1 = ,s2 = ;
for (int j = ;j <= n;j++)
if (i != j)
{
(s1 *= (pos - j)) %= p;
(s2 *= (i - j)) %= p;
}
(ans += a[i] * s1 % p * fast_pow(s2,p - )) %= p;
}
return ans;
}
int main()
{
int T = read();
while(T--)
{
k = read(),a = read(),n = read(),d = read();
for (int i = ;i <= k + ;i++) g[i] = fast_pow(i,k);
for (int i = ;i <= k + ;i++) (g[i] += g[i - ]) %= p;
for (int i = ; i <= k + ;i++) (g[i] += g[i - ]) %= p;
f[] = Lagrange(g,k+,a);
for (int i = ;i <= k + ;i++) f[i] = Lagrange(g,k + ,(i * d + a) % p),(f[i] += f[i - ]) %= p;
printf("%lld\n",(Lagrange(f,k + ,n) + p) % p);
}
return ;
}

【BZOJ3453】XLkxc的更多相关文章

  1. 【BZOJ3453】XLkxc [拉格朗日插值法]

    XLkxc Time Limit: 20 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 给定 k,a,n,d,p f(i ...

  2. 【tyvj1858】xlkxc(拉格朗日插值)

    传送门 题意: 求\(\sum_{i=0}^n\sum_{j=1}^{a+id}\sum_{k=1}^{j}k^K,n,a,d\leq 10^9,K\leq 100\). 思路: 最右边这个和式为一个 ...

  3. 【BZOJ】3453: tyvj 1858 XLkxc 拉格朗日插值(自然数幂和)

    [题意]给定k<=123,a,n,d<=10^9,求: $$f(n)=\sum_{i=0}^{n}\sum_{j=1}^{a+id}\sum_{x=1}^{j}x^k$$ [算法]拉格朗日 ...

  4. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  5. 【原】谈谈对Objective-C中代理模式的误解

    [原]谈谈对Objective-C中代理模式的误解 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这篇文章主要是对代理模式和委托模式进行了对比,个人认为Objective ...

  6. 【原】FMDB源码阅读(三)

    [原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...

  7. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  8. 【调侃】IOC前世今生

    前些天,参与了公司内部小组的一次技术交流,主要是针对<IOC与AOP>,本着学而时习之的态度及积极分享的精神,我就结合一个小故事来初浅地剖析一下我眼中的“IOC前世今生”,以方便初学者能更 ...

  9. Python高手之路【三】python基础之函数

    基本数据类型补充: set 是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object ...

随机推荐

  1. Go 中的动态作用域变量

    这是一个 API 设计的思想实验,它从典型的 Go 单元测试惯用形式开始: func TestOpenFile(t *testing.T) { f, err := os.Open("notf ...

  2. RabbitMQ 基础概念进阶

    上一篇 RabbitMQ 入门之基础概念 介绍了 RabbitMQ 的一些基础概念,本文再来介绍其中的一些细节和其它的进阶的概念. 一.消息生产者发送的消息不可达时如何处理 RabbitMQ 提供了消 ...

  3. C#LeetCode刷题之#237-删除链表中的节点(Delete Node in a Linked List)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3832 访问. 请编写一个函数,使其可以删除某个链表中给定的(非末 ...

  4. shazidouhui的使用体验

    这个软件有三个界面,一个是我的,一个是已批改作业,一个是未完成作业,但是,我不知道怎么用除了“我的”这个界面以外的其他两个界面,这一点还是需要优化优化,另外就是登陆界面确实还存在一点问题,有待改进.

  5. cocos2dx重新设置 SDK NDK目录

    参考博客https://blog.csdn.net/yinhe888675/article/details/41042347 初始设置SDK,NDK目录后,当我想换目录的时候不知道该怎么办,怎么重新设 ...

  6. try-catch-finally异常处理:

    java中三种实现多态的方案: 一:父类:普通类,普通方法: 子类:普通类,普通方法: 二:父类:抽象类,抽象方法: 子类:普通类,重写父类的抽象方法: 三:父类:接口类,抽象方法: 子类:普通类,实 ...

  7. 浏览器自动化的一些体会4 webBrowser控件之零碎问题2

    1. DocumentCompleted的多次执行问题 有的网页,会多次触发DocumentCompleted事件,由于它是异步的,不会阻塞,所以如果不恰当处理,会造成某些代码被错误地多次执行,造成意 ...

  8. .NET Core + K8S + Apollo 玩转配置中心

    1.引言 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理 ...

  9. 安装centos7显示器分辨率不适配的解决方法

    1,系统读取安装信息后,选择Install Centos7 然后Tab调出参数行 2,在quiet后空格输入nomodeset回车即可

  10. openVswitch(OVS)源代码分析之工作流程(flow流表查询)

    原文链接: openVswitch(OVS)源代码分析之工作流程(flow流表查询)