解题思路:
首先你得知道斐波那契的通项式子:首先你得知道斐波那契的通项式子:首先你得知道斐波那契的通项式子:
F(n)=15[(1+52)n−(1−52)n]F(n) = {1\over\sqrt5}[({1+\sqrt5\over2})^n-({1-\sqrt5\over2})^n]F(n)=5​1​[(21+5​​)n−(21−5​​)n]
令a=1+52,b=1−52,p=5令a={1+\sqrt5\over2},b={1-\sqrt5\over2},p=\sqrt5令a=21+5​​,b=21−5​​,p=5​

这些是mod(1e9+9)下的逆元
那么F(n)=1p(an−bn)F(n)={1\over p}(a^n-b^n)F(n)=p1​(an−bn)
∑i=0nF(i∗c)k=(1p)k∑i=0n(ai∗c−bi∗c)k\sum_{i=0}^{n}F(i*c)^k=({1\over p})^k\sum_{i=0}^{n}(a^{i*c}-b^{i*c})^k∑i=0n​F(i∗c)k=(p1​)k∑i=0n​(ai∗c−bi∗c)k
我们看一下:(ai∗c−bi∗c)k我们看一下:(a^{i*c}-b^{i*c})^k我们看一下:(ai∗c−bi∗c)k
进行多项式展开:进行多项式展开:进行多项式展开:
1.Ck0ai∗c∗(k−0)((−b)i∗c)0+Ck1ai∗c∗(k−1)((−b)i∗c)1+...+Ckkai∗c∗(k−k)((−b)i∗c)k=∑r=0kCkrai∗c∗(k−r)(−b)i∗c∗r1.C_k^0a^{i*c*(k-0)}((-b)^{i*c})^0+C_k^1a^{i*c*(k-1)}((-b)^{i*c})^1+...+C_k^ka^{i*c*(k-k)}((-b)^{i*c})^k=\sum_{r=0}^kC_k^ra^{i*c*(k-r)}(-b)^{i*c*r}1.Ck0​ai∗c∗(k−0)((−b)i∗c)0+Ck1​ai∗c∗(k−1)((−b)i∗c)1+...+Ckk​ai∗c∗(k−k)((−b)i∗c)k=∑r=0k​Ckr​ai∗c∗(k−r)(−b)i∗c∗r
2.∑i=0nF(i∗c)k=(1p)k∑i=0n∑r=0kCkrai∗c∗(k−r)((−b)i∗c)r2.\sum_{i=0}^{n}F(i*c)^k=({1\over p})^k\sum_{i=0}^{n}\sum_{r=0}^kC_k^ra^{i*c*(k-r)}((-b)^{i*c})^r2.∑i=0n​F(i∗c)k=(p1​)k∑i=0n​∑r=0k​Ckr​ai∗c∗(k−r)((−b)i∗c)r
3.(1p)k∑i=0n∑r=0kCkr(−1)rai∗c∗(k−r)bi∗c∗r3.({1\over p})^k\sum_{i=0}^{n}\sum_{r=0}^kC_k^r(-1)^ra^{i*c*(k-r)}b^{i*c*r}3.(p1​)k∑i=0n​∑r=0k​Ckr​(−1)rai∗c∗(k−r)bi∗c∗r
进行和式调整进行和式调整进行和式调整
4.(1p)k∑r=0kCkr(−1)r∑i=0nai∗c∗(k−r)bi∗c∗r4.({1\over p})^k\sum_{r=0}^kC_k^r(-1)^r\sum_{i=0}^{n}a^{i*c*(k-r)}b^{i*c*r}4.(p1​)k∑r=0k​Ckr​(−1)r∑i=0n​ai∗c∗(k−r)bi∗c∗r
令t=ak−rbr令t=a^{k-r}b^r令t=ak−rbr
5.(1p)k∑r=0kCkr(−1)r∑i=0n(tc)i5.({1\over p})^k\sum_{r=0}^kC_k^r(-1)^r\sum_{i=0}^{n}(t^c)^i5.(p1​)k∑r=0k​Ckr​(−1)r∑i=0n​(tc)i


这道题卡常数:1.我们要预处理所有的阶乘
2.对于tct^ctc的求法我们要用递推的形式

t1=t0∗(b∗inv(a))ct_1=t_0*(b*inv(a))^ct1​=t0​∗(b∗inv(a))c
3.对于n,c∈[1,1e18]我们要运用欧拉降幂的方法n,c\in[1,1e18]我们要运用欧拉降幂的方法n,c∈[1,1e18]我们要运用欧拉降幂的方法


#include <iostream>
#include <cstdio>
#include <stack>
#include <sstream>
#include <vector>
#include <map>
#include <cstring>
#include <deque>
#include <cmath>
#include <iomanip>
#include <queue>
#include <algorithm>
#include <set>
#define mid ((l + r) >> 1)
#define Lson rt << 1, l , mid
#define Rson rt << 1|1, mid + 1, r
#define ms(a,al) memset(a,al,sizeof(a))
#define log2(a) log(a)/log(2)
#define _for(i,a,b) for( int i = (a); i < (b); ++i)
#define _rep(i,a,b) for( int i = (a); i <= (b); ++i)
#define for_(i,a,b) for( int i = (a); i >= (b); -- i)
#define rep_(i,a,b) for( int i = (a); i > (b); -- i)
#define lowbit(x) ((-x) & x)
#define IOS std::ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define INF 0x3f3f3f3f
#define hash Hash
#define next Next
#define count Count
#define pb push_back
#define f first
#define s second
using namespace std;
const int N = 2e5+10, mod = 1e9 + 9;
const long double eps = 1e-5;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef pair<ll,ll> PLL;
typedef pair<double,double> PDD;
template<typename T> void read(T &x)
{x = 0;char ch = getchar();ll f = 1;while(!isdigit(ch)){if(ch == '-')f*=-1;ch=getchar();}while(isdigit(ch)){x = x*10+ch-48;ch=getchar();}x*=f;
}
template<typename T, typename... Args> void read(T &first, Args& ... args)
{read(first);read(args...);
}
const ll A = 691504013;//斐波那契通项公式的a
const ll B = 308495997;//斐波那契数列通项的b
const ll INVMOD = 1e9 + 8;//mod的逆元
const ll INV2 = 5e8 + 5;//2%(mod)的逆元
const ll INV5 = 383008016;//5的逆元
const ll I5=276601605;
int T;
ll n, c, k;
ll fac[N], fac_inv[N];
ll pa[N], pb[N];inline ll qmi(ll a, ll b)
{ll res = 1;while(b){if(b & 1) res = (res * a) % mod;b >>= 1;a = (a * a) % mod;}return res % mod;
}inline void Pre(int n)
{fac[0] = 1;for(int i = 1; i <= n; ++ i) fac[i] = i * fac[i - 1] % mod;fac_inv[0] = fac_inv[1] = 1;for(int i = 2; i <= n; ++ i) fac_inv[i] = qmi(fac[i],mod-2) % mod;pa[0]=1; for (int i = 1; i <= n; i++) pa[i] = pa[i-1] * A % mod;pb[0]=1; for (int i = 1; i <= n; i++) pb[i] = pb[i-1] * B % mod;}inline ll C(int n,int m){return fac[n]*fac_inv[m]%mod*fac_inv[n-m]%mod;
}inline ll Inv(ll x){return  qmi(x,mod-2);
}inline void Slove()
{ll ans = 0;ll tui = qmi(B * qmi(A,mod - 2) % mod,c);//递推求tll t = qmi(pa[k] % mod ,c) % mod;for(int i = 0; i <= k; ++ i){ll tmp = (t == 1) ? n % mod :  t*(qmi(t,n % INVMOD + INVMOD)-1+mod)%mod*Inv(t-1) % mod;if(i & 1) ans-=C(k,i)*tmp%mod;else  ans+=C(k,i)*tmp%mod;//预处理了组合数if(ans < 0) ans = (ans + mod) % mod;else ans %= mod;t = t * tui % mod;}ans = ans * qmi(I5,k) % mod;cout << ans % mod << endl;
}int main()
{Pre(100001);read(T);while(T --){read(n,c,k);c < INVMOD ?  c = c : c = c % INVMOD + INVMOD;//欧拉降幂Slove();}return 0;
}

欧拉降幂 ---- 2020 杭电多校[E - Fibonacci Sum]+欧拉降幂+和式的调整+二次剩余+毒瘤卡常相关推荐

  1. 点分治问题 ----------- HDU6881 Tree Cutting or 2020杭电多校第10场 [点分治+思维]

    题目链接 题目大意: 给定nnn个节点的树,问删除尽可能小的点使得树的直径不超过KKK,输出最小删除的点数,(1<=k<=n<=3e5)(1<=k<=n<=3e5) ...

  2. 2020杭电多校(二) New Equipments(最小费用最大流)

    New Equipments 思路 数据已经有提示了b∗b<=4∗a∗cb * b <= 4 * a * cb∗b<=4∗a∗c,这意味着,每一个a,b,ca, b, ca,b,c构 ...

  3. 2020 杭电多校5 1007、1008、1011

    1007 tree (hdu 6820) 题意: 输入 n,kn,kn,k ,给定一棵带权树,包含 nnn 个节点,要求找到一个权重和最大的子树,使得这个子树度数大于 kkk 的节点不超过 111 个 ...

  4. 2020杭电多校第六场 A Very Easy Math Problem 莫比乌斯反演 (HDU 6833)

    A Very Easy Math Problem 题解 ∑ a 1 = 1 n ∑ a 2 = 1 n ⋅ ⋅ ⋅ ∑ a x = 1 n ( ∏ j = 1 x a j k ) f ( g c d ...

  5. 2020杭电多校训练(第一、二场)

    目录 第一场 1005.Fibonacci-Sum 1009.Leading-Robots 1006.Finding-a-MEX 第二场 1012.String-Distance 1005.New-E ...

  6. 2020杭电多校训练(第五、六场)

    目录 第五场 1001.Tetrahedron 1009.Paperfolding 1003.Boring-Game 1012.Set1 1007.Tree 第六场 1006.A-Very-Easy- ...

  7. 【2020杭电多校】 Lead of Wisdom 【暴搜】

    这道题,我还以为是什么状压dp(看到dp头就疼)? 我是不是脑瘫了,一开始想过暴搜,就这?最坏时间复杂度跑一遍早就超过1e8了,一秒肯定跑不完,能过?弃了弃了,谁知道题目给了8000ms!!! 什么是 ...

  8. 2020杭电多校第二场 Lead of Wisdom(爆搜)

    Problem Description In an online game, "Lead of Wisdom" is a place where the lucky player ...

  9. 2020杭电暑期多校02 10 - Lead of Wisdom (HDU6772) 常数坑

    20200725005909 2020杭电暑期多校02 10 - Lead of Wisdom (HDU6772) 常数坑 如果一直 TLE,就看第三章. 一.题意 物品可能的种类有 kkk 种,编号 ...

最新文章

  1. Spring @Autowired 注入为 null
  2. 实战SSM_O2O商铺_48【用户登录】用户登录Dao-Service-Controller-View层的开发
  3. android 导入系统证书,安卓手机添加系统证书方法(HTTPS抓包)
  4. python核心编程6-14习题的解题思路
  5. C#调用C++Dll封装时遇到的一系列问题 参考
  6. 美国计算机专业硏究生,2014年美国计算机专业研究生排名
  7. DirectX 基础学习系列5 纹理映射
  8. 平面设计背景素材|打造超酷的炫彩光束光效海报!
  9. Function与Module的差异与应用场景
  10. 运维,请警惕脚本灾难!
  11. 大学计算机课思维导图,快速记忆和理解大学计算机思维导图
  12. HDLC(High-Level Data Link Control)(对比以太网)
  13. HDU 6441(费马大定理+奇偶数列法)
  14. NULL, '\0',0 '0'的区别
  15. 小蜜蜂商城系统解析,结合众筹卖货活动,流水千万
  16. UI设计中图标设计规范是什么
  17. 看了 Google 大神 Jeff Dean 的传说,我拜服了~
  18. java validate 框架_使用validate验证框架
  19. 校园网拨号上网一直掉线但实际网络通路是连接着的
  20. 成人用品的UML建模

热门文章

  1. JSP复习题【侵权联系我删除】
  2. Linux CNTOS7 修改网络配置
  3. Dropout 的前世与今生
  4. 基于自适应策略转移的深度强化学习
  5. 基于OpenCV的位姿估计
  6. 前后端分离后的前端时代
  7. 聊聊《柒个我》这部剧
  8. mysql5.6.20二进制安装
  9. proftpd的搭建以及相关配置
  10. How to read a book