ことばがありあまれどなお、 このゆめはつづい|

trsins

园龄:3年10个月粉丝:18关注:2

【做题记录】集训队作业2020 Old Problem

  • 集训队作业 2020 Old Problem

    • 误差分析

题目:

给一个长度为 n 的序列 ai,和 q 组询问 (l,r,x),表示求 i=lr(1aix) 的值。精度 106

n,q6×105, 1ai<x109


题解:

注意到

exp(ln(i=lr(1aix)))=exp(i=lrln(1aix))=exp(i=lrk=1maikk×xk)

然后显然不能直接泰勒展开。

考虑使泰勒展开精度损失的原因。当 aix 较大时,ln(1aix) 的精度要求很高,导致答案小于精度范围。

所以容易想到考虑设个阈值 ips。表示对于 aix 的大小情况的判断。当 aix 小于阈值时,直接用线段树维护泰勒展开。否则就暴力计算,然后判断精度问题。

ips 差不多 12

暴力显然不会超过 logN 次。

然后时间复杂度就是 O(nlog2m)m 大约 20 几这个样子。

然后就做完了。

当然可以前缀和优化线段树少个 log

但是这样精度问题就有点麻烦。要证明这玩意对于精度不会产生影响。反正我是不证了,能过。

本文作者:trsins

本文链接:https://www.cnblogs.com/trsins/p/15814804.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   trsins  阅读(98)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示