码迷,mamicode.com
首页 > 其他好文 > 详细

a^-1+b problem

时间:2020-07-28 00:29:28      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:数据结构   复杂度   函数   div   求导   解决   这一   inline   problem   

  • 题目链接
    uoj#182

  • 前言
    刚看到题以为是毒瘤数据结构,没想到是毒瘤多项式......

  • 题意
    给定一个\(n\)个元素的序列{\(a_n\)},有\(2\)种操作:
    \(1.\) 给序列中的每个数加\(x\)
    \(2.\) 将序列中的每个数变为其逆元(保证此时每个数存在逆元)
    现在有\(m\)次操作,求每次操作后序列的和。

  • 题解
    首先每个数在操作后一定会变成\(\frac{ax+b}{cx+d}\) 的形式(我这一步没想到,然后直接弃了
    那么我们将其化成\(e+f·\frac{1}{x+g}\) 的形式,令函数\(F(x)\)为这个东西,那么答案为

    \[\sum_{i=1}^{n} F(a_i)=ne+f·\sum_{i=1}^n \frac{1}{a_i+g} \]

    这东西看着就知道很不好求,考虑构造函数\(G(x)=\prod_{i=1}^n (a_i+x)\) ,将答案乘上\(G(g)\),那么就有

    \[G(g)\sum_{i=1}^n F(a_i)=neG(g)+f·\sum_{i=1}^n \prod_{j \neq i}(a_j+g) \]

    这样就可以考虑再构造函数\(H(x)=\sum_{i=1}^n \prod_{j \neq i} (a_j+x)\) ,所以

    \[\sum_{i=1}^n F(a_i)=ne+f·\frac{H(g)}{G(g)} \]

    所以就直接离线,多项式多点求值,就做完了。

  • 实现
    \(G\)可以直接分治\(fft\)解决,\(H\)观察一下发现是\(G\)的导数,可以直接求导解决。
    时间复杂度\(O(nlog^2n)\)

a^-1+b problem

标签:数据结构   复杂度   函数   div   求导   解决   这一   inline   problem   

原文地址:https://www.cnblogs.com/leukocyte/p/13387797.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!