题意:

给定n和k,求

1 ≤ n ≤ 109, 0 ≤ k ≤ 106

思路:

题目中给的提示是对于给定的k我们可以求出一个最高次为k+1的关于n的通项公式。

根据拉格郎日插值法,我们可以通过k+2个离散的点来确定这个通项。所以求出前k+2项,然后就可以确定公式。

拉格郎日差值法传送门:http://www.guokr.com/post/456777/

最后得出的公式是酱紫的:(公式来自卿学姐博客)

然后问题来了,有除法如何搞定模运算...这个就用到逆元的运算了,逆元的定义就是大家都学过的离散数学里边的那个定义,求解方法有两种,一种是根据扩展欧几里得,构造ax+by=1(mod某数),如果取模的某数是一个素数的话可以根据费马小定理a^(p-1)=1(mod某数),结合快速幂求解。

注意有j!=i的条件...所以要求的逆元数是两个,好好理解下这个式子可以用阶乘优化复杂度。

传送门:http://www.cnblogs.com/james47/p/3871782.html

坑点:

注意逆元的运算应该放到等式的前边。然后注意阶乘的正负。

代码:(基本是跟卿学姐一个模子刻出来的==

#include<bits/stdc++.h>
using namespace std;
long long mod=(1e9)+;
long long p[];
long long fac[];
long long quick_pow(long long a,long long b,long long m){
long long tmp=;
while(b){
if(b&){
tmp*=a;
tmp%=m;
}
a*=a;
a%=m;
b>>=;
}
return tmp;
}
int main()
{
long long n,k;
cin>>n>>k;
for(int i=;i<=k+;i++){
p[i]=(p[i-]+quick_pow(i,k,mod))%mod;
}
fac[]=;
for(int i=;i<=;i++){
fac[i]=fac[i-]*i;
fac[i]%=mod;
}
if(n<=k+){
cout << p[n] << endl;
return ;
}
long long chang=;
for(int i=;i<=k+;i++){
chang*=n-i;
chang%=mod;
}
long long ans=;
for(int i=;i<=k+;i++){
long long a=quick_pow(n-i,mod-,mod);
long long b=quick_pow((fac[i-]*fac[k+-i])%mod,mod-,mod);
if((k+-i)%)b=-b;
ans =(ans + p[i]*chang%mod*b%mod*a)%mod;//这句一定要注意逆元运算先
}
cout << ans << endl;
}

Codeforces 622F 「数学数论」「数学规律」的更多相关文章

  1. 「状压DP」「暴力搜索」排列perm

    「状压DP」「暴力搜索」排列 题目描述: 题目描述 给一个数字串 s 和正整数 d, 统计 sss 有多少种不同的排列能被 d 整除(可以有前导 0).例如 123434 有 90 种排列能被 2 整 ...

  2. 【翻译】西川善司的「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密,后篇

    http://www.4gamer.net/games/216/G021678/20140714079/     连载第2回的本回,  Arc System Works开发的格斗游戏「GUILTY G ...

  3. Android内存管理(4)*官方教程 含「高效内存的16条策略」 Managing Your App's Memory

    Managing Your App's Memory In this document How Android Manages Memory Sharing Memory Allocating and ...

  4. SSH连接时出现「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」解决办法

    用ssh來操控github,沒想到連線時,出現「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」,後面還有一大串英文,這時當然要向Google大神求助 ...

  5. 「Windows MFC 」「Edit Control」 控件

    「Windows MFC 」「Edit Control」 控件

  6. 「ZJOI2019」&「十二省联考 2019」题解索引

    「ZJOI2019」&「十二省联考 2019」题解索引 「ZJOI2019」 「ZJOI2019」线段树 「ZJOI2019」Minimax 搜索 「十二省联考 2019」 「十二省联考 20 ...

  7. Loj #6069. 「2017 山东一轮集训 Day4」塔

    Loj #6069. 「2017 山东一轮集训 Day4」塔 题目描述 现在有一条 $ [1, l] $ 的数轴,要在上面造 $ n $ 座塔,每座塔的坐标要两两不同,且为整点. 塔有编号,且每座塔都 ...

  8. Loj #6073.「2017 山东一轮集训 Day5」距离

    Loj #6073.「2017 山东一轮集训 Day5」距离 Description 给定一棵 \(n\) 个点的边带权的树,以及一个排列$ p\(,有\)q $个询问,给定点 \(u, v, k\) ...

  9. Loj 6068. 「2017 山东一轮集训 Day4」棋盘

    Loj 6068. 「2017 山东一轮集训 Day4」棋盘 题目描述 给定一个 $ n \times n $ 的棋盘,棋盘上每个位置要么为空要么为障碍.定义棋盘上两个位置 $ (x, y),(u, ...

  10. 「2017 山东一轮集训 Day5」苹果树

    「2017 山东一轮集训 Day5」苹果树 \(n\leq 40\) 折半搜索+矩阵树定理. 没有想到折半搜索. 首先我们先枚举\(k\)个好点,我们让它们一定没有用的.要满足这个条件就要使它只能和坏 ...

随机推荐

  1. SSH客户端(如PuTTY)ssh远程登录Linux非常慢的解决方法

    转:http://blog.useasp.net/archive/2014/05/19/solved-the-problem-of-ssh-client-such-as-putty-remote-lo ...

  2. Log4j使用详解(log4j.properties格式)

    Log4j使用详解(log4j.properties格式) 1.Log4j 的引入 在应用程序中添加日志记录总的来说基于三个目的: ① 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计 ...

  3. Jquery实现购物车物品数量的加减特效

    今天网友翠儿在用Jquery实现购物车物品数量的加减特效的时候遇到问题来问我,我后来帮她解决了这个Jquery特效,现在把它整理出来分享给大家用,虽然功能比较简单,但是很实用. 主要包括了以下功能: ...

  4. SOCKET:SO_LINGER 选项

    好多次接触到SO_LINGER选项,但总是忘了这是干什么用的.现在整理一下,我才明白这个参数是用来设定“SOCKET在CLOSE时候是否等待缓冲区发送完成”这个特性的.下面是一些详细的说明. sets ...

  5. 剑指offer系列50--不用加减乘除做加法

    [题目]写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号 * [思路]1 不计进位,直接位运算(异或方式可实现此运算,即1+0 0+1为1,0+0 1+1位0) * 2 与 ...

  6. bzoj4642: 泡泡

    Description "OI真的像是一条奇趣横生的路啊,也许它是绕过了高考的大山,也许确实有通往大学的捷径.但我,真的,真的只在 乎那路上美丽的泡泡." --TB   TB喜欢所 ...

  7. LVS包转发模型和调度算法(转)

    LVS简介 Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,因此对于大负载的服务器来 讲, CPU.I/O处理能力很快会成为瓶颈.由于单台 ...

  8. rsync 同步文件

    rsync 同步文件 rsync -avz roo@192.168.4.12::/home/a ./a  --exclude "data" exclude 去掉/a/data 文件 ...

  9. 事件日志ID 2511:服务器服务无法重新创建 <sharename> 共享关系,因为 <address> 目录已不再存在

    服务器服务无法重新创建 QQMusicDownload 共享关系,因为 D:\QQMusic\QQMusicDownload 目录已不再存在.请运行 "net share QQMusicDo ...

  10. 【转】SVN服务器客户端以及环境的搭建和使用

    vss,cvs,svn三者都是版本控制工具 vss是锁定-编辑-解锁模式,svn虽然也支持锁定,但默认是修改-冲突-合并模式 vss的版本号对应的是单个文件,svn的版本号对应的是整个版本库 vss是 ...