多项式(polynomial)

题目大意:

给出一个 n 次多项式

\(f(x)=\sum_{i=0}^na_ix^i\)

对于\(k ≤ x ≤ k + l − 1\) 的\(l\) 个\(x\),分别求出\(f(x)\) 的值。由于答案可能会很大,你只需:输出\(f(x) \space mod \space 10^m\)的结果。

第一行共四个整数\(n, k, l,m\),中间用一个空格隔开,含义如题意所述。接下来\(n+1\)行,每行一个整数,依次给出了\(an, an−1, . . . , a0\)。

  • 【算法要点】

    • 高精度运算差分
  • 【算法一】
    • 有10%的数据,所有数字都在 \(10^9\) 以内,直接做就行了。
    • 时间复杂度 \(O(nl)\),期望得分 \(10\) 分。
  • 【算法二】
    • 由于答案是模 \(10^m\) 的,所以把所有数都模 \(10^m\) 答案不变。于是现在所有数字都在 \(10^{18}\) 以内,直接做就行了。不过可能会遇到两个\(10^{18}\) 以内的数相乘,如果不想写高精度就用快速乘算法。
    • 时间复杂度 \(O(nl \log_2(10^{18}))\),期望得分 \(30\) 分。
  • 【算法三】
    • 写高精度,并压位。
    • 时间复杂度 \(O(nl({m \over w})^2)\),其中 \(w\) 为压的位数。期望得分 \(60\) 分。
  • 【算法四】
    • 把算法三中的高精度乘法用FFT等算法实现。
    • 时间复杂度 \(O(nl{m \over w} \log_2m)\),常数超大,期望得分 \(60 \sim 80\) 分。
  • 【算法五】(标准算法)
    • 本题的关键是通过差分把乘法转化成加减法。
    • 把 \(f(x)\) 差分,即令多项式 \(g(x) = f(x + 1) - f(x)\),得到的 \(g(x)\) 是一个 \(n - 1\) 次多项式,不妨定义其为 \(f^{(n-1)}(x)\) 。
    • 同理,差分两次后得到一个 \(n-2\) 次多项式,设其为 \(f^{(n-2)}(x)\)
    • ……
    • 这样下去,差分 \(n\)次后就能得到一些常数。
    • 令\(a[i][j] = f(i)(-1+j)\),首先暴力做 \(n+1\) 次算出 \(a[n][1] ∼ a[n][n+1]\)。
    • 然后根据 \(a[i - 1][j] = a[i][j + 1] - a[i][j]\),可以对每个 \(a[i]\) 算出前 \(i + 1\) 项。
    • 由于 \(a[0][j]\) 都是常数,所以对于 \(j > i + 1\) 的,根据 \(a[i][j] = a[i][j - 1] +a[i - 1][j - 1]\),就可以推出\(a[i]\) 的前 \(l\) 项。这里只做了 \(O(nl)\)次加法运算。时间复杂度 \(O(n^2({m \over w})^2 + nl{m \over w})\),期望得分 \(100\) 分。

多项式(polynomial)的更多相关文章

  1. P==NP??

    注:基础知识见下方 下面是关于P==NP ???  一些讨论,挺好玩的. 1. 首先强调一下数学上还没有证明这个问题!但是我们看看其他角度来看这个问题. 其次,心理上来说,要是可以证明P==NP那么早 ...

  2. 证明与计算(1): Decision Problem, Formal Language L, P and NP

    0x01 从判定问题到形式语言 这篇讲知识证明的wiki([1]): https://en.wikipedia.org/wiki/Proof_of_knowledge 里面有一句话: Let x be ...

  3. [Algorithm]巧用多项式系数与进制的联系

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  4. PRML Chapter3

    曲线拟合的几种方法 最大似然估计MLE,最大后验概率MAP:MLE和MAP MLE 给定一堆数据,假如我们知道它是从某一种分布中随机取出来的,可是我们并不知道这个分布具体的参,即"模型已定, ...

  5. Minimum Snap轨迹规划详解(1)轨迹规划

    一. 轨迹规划是什么? 在机器人导航过程中,如何控制机器人从A点移动到B点,通常称之为运动规划.运动规划一般又分为两步: 1.路径规划:在地图(栅格地图.四\八叉树.RRT地图等)中搜索一条从A点到B ...

  6. FZU 2215 Simple Polynomial Problem(简单多项式问题)

    Description 题目描述 You are given an polynomial of x consisting of only addition marks, multiplication ...

  7. Project Euler 101 :Optimum polynomial 最优多项式

    Optimum polynomial If we are presented with the first k terms of a sequence it is impossible to say ...

  8. 用正则表达式(regex)匹配多项式(polynomial)

    因为作业的要求,我需要识别用户从命令行输入的多项式,并且要提取出其中的系数.指数以便用于后续计算. 曾经想过用一个数组把用户所有的输入全部存进来,然后在写逻辑判断.但想想那复杂的逻辑,头皮都发麻,这时 ...

  9. 数据拟合:多项式拟合polynomial curve fitting

    http://blog.csdn.net/pipisorry/article/details/49804441 常见的曲线拟合方法 1.使偏差绝对值之和最小 2.使偏差绝对值最大的最小       3 ...

  10. (多项式)因式分解定理(Factor theorem)与多项式剩余定理(Polynomial remainder theorem)(多项式长除法)

    (多项式的)因式分解定理(factor theorem)是多项式剩余定理的特殊情况,也就是余项为 0 的情形. 0. 多项式长除法(Polynomial long division) Polynomi ...

随机推荐

  1. 发布 mbtiles 存储的矢量瓦片

    之前我们分享过如何 在本地发布OSM矢量瓦片地图,里面介绍了生成的矢量瓦片会存放在 .mbtiles 文件中,然后用 tileserver-gl 软件发布. mbtiles 是基于sqllite数据库 ...

  2. 学习 Webpack5 之路(优化篇)

    一.前言 从 0 到 1 学习的朋友可参考前置学习文章: 学习 Webpack5 之路(基础篇) 学习 Webpack5 之路(实践篇) 前置文章 学习 Webpack5 之路(基础篇) 对 webp ...

  3. Java 学习:数据类型

    前言:Java属于强类型语言 强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用 优势就是安全性高,但劣势速度慢 数据类型 Java的数据类型分为两大类: 基本类型(primit ...

  4. php open_basedir绕过

    描述 php为了安全性考虑,有一项 open_basedir 的设置,它可将用户访问文件的活动范围限制在指定的区域.根据你web服务器环境,open_basedir可以在几个地方设置. 首先 在php ...

  5. 洛谷P2115 Sabotage G 题解

    题目 [USACO14MAR]Sabotage G 题解 本蒟蒻又来了,这道题可以用二分答案来解决.我们可以设答案最小平均产奶量为 \(x \ (x \in[1,10000])\) .然后二分搜索 \ ...

  6. error : Hooks can only be called inside of the body of a function component. 依赖包和主包加载多个react 引发冲突问题

    1. 结论: 在依赖包和主包的node-modules中,同时install包含react , react-dom 或者react-redux时,跑测试或者启动的时候,显示如下error.当然出现这个 ...

  7. coreos 常见问题

    1.如果docker run的时候报如下错误: error creating overlay mount to /var/lib/docker/overlay2/... ... 则需要修改/run/s ...

  8. 基于flex布局的header

    一.如图 二.思路 1.定义header,设置宽为100%,高为60px,设置绝对定位,使其为漂浮层.在header里添加container,宽设置为版心宽度,并且设置flex布局. 2.在conta ...

  9. 取消input默认提示框

    input输入框有自动保存记忆功能,点击的时候之前输入的内容会在下拉框自动提示 autocomplete="off",这是H5的一个属性. <input type=" ...

  10. (9)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-搭建Eureka服务注册中心

    ​ 首先创建一个 Maven 项目,取名为 eureka-server,在 pom.xml 中配置 Eureka 的依赖信息,代码如下所示. <!-- Spring Boot --> &l ...