题目分析

题目要求的是:
\[
\sum_{i=1}^n\sum_{j=1}^m(a_i+b_j)^x(x\in [1,T])
\]

利用二项式定理化式子,
\[
\begin{aligned}
&\sum_{i=1}^n\sum_{j=1}^m(a_i+b_j)^x\\
=&\sum_{i=1}^n\sum_{j=1}^m\sum_{k=0}^x\binom{x}{k}a_i^kb_j^{x-k}\\
=&x!\sum_{i=1}^n\sum_{j=1}^m\sum_{k=0}^x\frac{a_i^k}{k!}\frac{b_j^{x-k}}{(x-k)!}\\
=&x!\sum_{k=0}^x\frac{\sum_{i=1}^na_i^k}{k!}\frac{\sum_{j=1}^mb_j^{x-k}}{(x-k)!}
\end{aligned}
\]

发现上面是一个卷积的形式。现在需要我们能快速求出\(\sum\limits_{i=1}^na_i^k\)。

构造\(\sum\limits_{i=1}^na_i^k\)的生成函数:
\[
\begin{aligned}
A(i)&=\sum_ja_i^jx^j\\
F(x)&=\sum_{i=1}^nA(i)
\end{aligned}
\]

\(F\)函数的每一项即为\(\sum\limits_{i=1}^na_i^k\)。

化一下式子
\[
\begin{aligned}
F(x)&=\sum_{i=1}^n\sum_{j}a_i^jx^j\\
&=\sum_{i=1}^n\frac{1}{1-a_ix}\\
&=\sum_{i=1}^n1+\frac{a_ix}{1-a_ix}\\
&=n-x\sum_{i=1}^n\frac{-a_i}{1-a_ix}\\
&=n-x\sum_{i=1}^n\left[\ln(1-a_ix)\right]'\\
&=n-x\left[\sum_{i=1}^n\ln(1-a_ix)\right]'\\
&=n-x\left\{\ln\left[\prod_{i=1}^n(1-a_ix)\right]\right\}'\\
\end{aligned}
\]

\(\prod_{i=1}^n(1-a_ix)\)可以用分治FFT\(O(nlog^2n)\)算出。

那么再求ln,求导,乘上x,取负,加上常数项就能得到\(F\)了。

最后把a,b的生成函数分别除以一下阶乘,再卷积一下即可。

洛谷 P4705 玩游戏的更多相关文章

  1. 洛谷 P4705 玩游戏 解题报告

    P4705 玩游戏 题意:给长为\(n\)的\(\{a_i\}\)和长为\(m\)的\(\{b_i\}\),设 \[ f(x)=\sum_{k\ge 0}\sum_{i=1}^n\sum_{j=1}^ ...

  2. 洛谷P4705 玩游戏 [生成函数,NTT]

    传送门 这是两个月之前写的题,但没写博客.现在回过头来看一下发现又不会了-- 还是要写博客加深记忆. 思路 显然期望可以算出总数再乘上\((nm)^{-1}\). 那么有 \[ \begin{alig ...

  3. [洛谷P4705]玩游戏

    题目大意:对于每个$k\in[1,t]$,求:$$\dfrac{\sum\limits_{i=1}^n\sum\limits_{j=1}^m(a_i+b_j)^k}{nm}$$$n,m,t\leqsl ...

  4. 洛谷P4705 玩游戏(生成函数+多项式运算)

    题面 传送门 题解 妈呀这辣鸡题目调了我整整三天--最后发现竟然是因为分治\(NTT\)之后的多项式长度不是\(2\)的幂导致把多项式的值存下来的时候发生了一些玄学错误--玄学到了我\(WA\)的点全 ...

  5. 洛谷 P2197 nim游戏

    洛谷 P2197 nim游戏 题目描述 甲,乙两个人玩Nim取石子游戏. nim游戏的规则是这样的:地上有n堆石子(每堆石子数量小于10000),每人每次可从任意一堆石子里取出任意多枚石子扔掉,可以取 ...

  6. 洛谷 P1965 转圈游戏

    洛谷 P1965 转圈游戏 传送门 思路 每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第 m+1 号位置,--,依此类推,第n − m号位置上的小伙伴走到第 0 号 ...

  7. 【流水调度问题】【邻项交换对比】【Johnson法则】洛谷P1080国王游戏/P1248加工生产调度/P2123皇后游戏/P1541爬山

    前提说明,因为我比较菜,关于理论性的证明大部分是搬来其他大佬的,相应地方有注明. 我自己写的部分换颜色来便于区分. 邻项交换对比是求一定条件下的最优排序的思想(个人理解).这部分最近做了一些题,就一起 ...

  8. $loj10156/$洛谷$2016$ 战略游戏 树形$DP$

    洛谷loj Desription Bob 喜欢玩电脑游戏,特别是战略游戏.但是他经常无法找到快速玩过游戏的方法.现在他有个问题. 现在他有座古城堡,古城堡的路形成一棵树.他要在这棵树的节点上放置最少数 ...

  9. 洛谷P1080 国王游戏 python解法 - 高精 贪心 排序

    洛谷的题目实在是裹脚布 还编的像童话 这题要 "使得获得奖赏最多的大臣,所获奖赏尽可能的少." 看了半天都觉得不像人话 总算理解后 简单说题目的意思就是 根据既定的运算规则 如何排 ...

随机推荐

  1. 十二、异步工具Timer

    一.简介 JDK提供一种异步线程工具Timer类,你可以利用这个类做延迟任务.周期性任务等. JDK文档:http://tool.oschina.net/uploads/apidocs/jdk-zh/ ...

  2. Kinect1驱动 PCL OpenCV ROS 安装

    1. OpenCV安装 1)在终端安装依赖项sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev li ...

  3. 基于Github搭建SrpingCloudConfig详解

    最近在看SpringCloud,为了帮助自己学习和记忆,所以写下这篇文章. 从SpringCloud官方文档上看SpringCloudConfig其实为我们提供配置外部化的一个服务,可以理解成就是个w ...

  4. Java反射学习总结

    我开始学习反射的初衷是为了理解Spring 里的控制反转,其次可以利用反射来达到类中的解耦. 自己写的一些心得,希望能帮到大家 1.反射指的是对象的反向处理操作,是根据对象来取得对象的来源信息. 反射 ...

  5. Linux之Ubuntu基本命令提炼,分条列出

    Ubuntu系统的root用户有时没有安装,我们可以先输入一个root,他会有一个提示命令,然后我们输入该命令,进行安装,安装完后,使用sudopasswd 命令设置密码,设置完后的密码就是root用 ...

  6. linux端口开放

      netstat 查看端口开放情况: netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 ...

  7. JSP9大内置对象

    JSP9大内置对象 JSP9个内置对象:out对象 用于输出各种数据reuest对象 封装了来自客户端的各种信息response对象 封装了服务器的响应信息exception对象 封装了程序运行过程中 ...

  8. C# Timer定时器用法

    System.Timers.Timer timer1 = new System.Timers.Timer(); timer1.Elapsed += new System.Timers.ElapsedE ...

  9. 软工读书笔记 week3 (《黑客与画家》上)

    一.何谓黑客? 黑客,在我们大多数普通人眼里,就是入侵计算机的人,通常还与干坏事挂钩.而书中告诉我们,这 并不是它的真正含义.而要想理解这本书,就要首先理解什么是黑客. 黑客这个词最初起源时,完全是一 ...

  10. restframework类继承图