题意:求
\[
\sum_{i=0}^n[k|i]\binom{n}{i}Fib(i)
\]
斐波那契数列有简单的矩阵上的通项公式\(Fib(n)=A^n_{1,1}\)。代入得
\[
=\sum_{i=0}^n[k|i]\binom{n}{i}A^i_{1,1}
\]
由单位根反演,
\[
=\sum_{i=0}^n\frac{1}{k}\sum_{j=0}^{k-1}w_k^{ij}\binom{n}{i}A^i_{1,1}
\]
注意到后面多项与\(i\)有关,考虑将\(i\)贬到后面去。
\[
=\frac{1}{k}\sum_{j=0}^{k-1}\sum_{i=0}^n(w_k^j)^i\binom{n}{i}A^i_{1,1}
\]
二项式定理描述为\((a+b)^n=\sum_{i=0}^n\binom{n}{i}a^ib^{n-i}\),右侧形式的要点在于卷积和组合数。因此式子可化为
\[
=\frac{1}{k}\sum_{j=0}^{k-1}(w_k^{-j-n}(A+w_k^{-j}I)^n)_{1,1}
\]
后面可快速幂计算。

2019.4.21注:都提到“反演”了显然是计数(组合)内容啊

BZOJ3328 PYXFIB 单位根反演的更多相关文章

  1. bzoj 3328 PYXFIB —— 单位根反演

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3328 单位根反演,主要用到了 \( [k|n] = \frac{1}{k} \sum\lim ...

  2. bzoj 3328 PYXFIB——单位根反演

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3328 单位根反演主要就是有 \( [k|n] = \frac{1}{k}\sum\limit ...

  3. BZOJ 3328: PYXFIB 单位根反演+矩阵乘法+二项式定理

    如果写过 LJJ 学二项式那道题的话这道题就不难了. #include <bits/stdc++.h> #define ll long long #define setIO(s) freo ...

  4. 【BZOJ3328】PYXFIB(单位根反演,矩阵快速幂)

    [BZOJ3328]PYXFIB(单位根反演,矩阵快速幂) 题面 BZOJ 题解 首先要求的式子是:\(\displaystyle \sum_{i=0}^n [k|i]{n\choose i}f_i\ ...

  5. bzoj3328: PYXFIB(单位根反演+矩阵快速幂)

    题面 传送门 题解 我们设\(A=\begin{bmatrix}1 & 1 \\ 1 & 0\end{bmatrix}\),那么\(A^n\)的左上角就是\(F\)的第\(n\)项 所 ...

  6. UOJ#450. 【集训队作业2018】复读机 排列组合 生成函数 单位根反演

    原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ450.html 题解 首先有一个东西叫做“单位根反演”,它在 FFT 的时候用到过: $$\frac 1 ...

  7. POJChallengeRound2 Guideposts 【单位根反演】【快速幂】

    题目分析: 这题的目标是求$$ \sum_{i \in [0,n),k \mid i} \binom{n}{i}G^i $$ 这个形式很像单位根反演. 单位根反演一般用于求:$ \sum_{i \in ...

  8. 【做题】UOJ450 - 复读机——单位根反演

    原文链接 https://www.cnblogs.com/cly-none/p/UOJ450.html 题意:请自行阅读. 考虑用生成函数来表示答案.因为秒之间是有序的,所以这应当是个指数生成函数.故 ...

  9. 【UOJ#450】【集训队作业2018】复读机(生成函数,单位根反演)

    [UOJ#450][集训队作业2018]复读机(生成函数,单位根反演) 题面 UOJ 题解 似乎是\(\mbox{Anson}\)爷的题. \(d=1\)的时候,随便怎么都行,答案就是\(k^n\). ...

随机推荐

  1. Smobiler 4.4 更新预告 Part 1(Smobiler能让你在Visual Studio上开发APP)

    在4.4版本中,大家对产品优化的一些建议和意见进行了相应的优化和修复,同时,还新增了一些令人激动的功能和插件. 下面先为大家介绍4.4版本中Smobiler的优化和修复: 优化 1, PageView ...

  2. PLSQL创建Oracle定时任务

    在使用oracle最匹配的工具plsql的时候,如果用plsql创建定时器呢?下面我简单介绍使用工具创建定时器的方法: 1.创建任务执行的存储过程,如名称为YxtestJob,向测试表中插入数据 cr ...

  3. 第一讲 新手如何学习HTTP协议之实践项目多开微信机器人

    上一篇做了一个smart qq机器人. 前几天,因为突然上不了  smart qq,以为TX 要抛弃了..所以就没有接着完善smart 机器人.应朋友要求,做一个多开微信. 做了几天已经做好了,理论上 ...

  4. WEB项目挂载到IIS session过期

    莫名丢失问题: 1.可能是因为系统内部连续的抛出了5次以上的异常 导致进程重启(当前所有在线用户) 2.IIS6 以上默认配置进程,session存在进程内其实是在W3wp.exe中这个进程不稳定,在 ...

  5. PHP中private、public、protected的区别详解

    先简单粗俗的描述下:public 表示全局,类内部外部子类都可以访问:private表示私有的,只有本类内部可以使用:protected表示受保护的,只有本类或子类或父类中可以访问: 再啰嗦的解释下: ...

  6. Java开发笔记(二十九)大整数BigInteger

    早期的编程语言为了节约计算机的内存,给数字变量定义了各种存储规格的数值类型,比如字节型byte只占用一个字节大小,短整型short占用两个字节大小,整型int占用四个字节大小,长整型long占用八个字 ...

  7. 数据结构(java版)学习笔记(二)——线性表之顺序表

    顺序表的优点: 随机存取元素方便,根据定位公式容易确定表中每个元素的存储位置,所以要指定第i个结点很方便 简单,直观 顺序表的缺点: 插入和删除结点困难 扩展不灵活,难以确定分配的空间 容易造成浪费 ...

  8. 【转】三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别

    关于inflate参数问题,我想很多人多多少少都了解一点,网上也有很多关于这方面介绍的文章,但是枯燥的理论或者翻译让很多小伙伴看完之后还是一脸懵逼,so,我今天想通过三个案例来让小伙伴彻底的搞清楚这个 ...

  9. Selenium自动化测试 Verify

    Selenium 找了很久,没有发现有verify的方法,可是,有个时候要的是确认,而不是直接断言, 当然要在运行结束后能够得到确认的结果,于是写了下面的代码,给大家分享.     import ja ...

  10. 环境配置(pycharm+virtualenv+git+github等)

    本文转载自https://blog.csdn.net/xiaogeldx/article/details/87315081 铺垫 数据表示方式 - 计算机使用二进制作为自己的机器语言也就是数据的表示方 ...