多项式(polynomial)
多项式(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)的更多相关文章
- P==NP??
注:基础知识见下方 下面是关于P==NP ??? 一些讨论,挺好玩的. 1. 首先强调一下数学上还没有证明这个问题!但是我们看看其他角度来看这个问题. 其次,心理上来说,要是可以证明P==NP那么早 ...
- 证明与计算(1): Decision Problem, Formal Language L, P and NP
0x01 从判定问题到形式语言 这篇讲知识证明的wiki([1]): https://en.wikipedia.org/wiki/Proof_of_knowledge 里面有一句话: Let x be ...
- [Algorithm]巧用多项式系数与进制的联系
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- PRML Chapter3
曲线拟合的几种方法 最大似然估计MLE,最大后验概率MAP:MLE和MAP MLE 给定一堆数据,假如我们知道它是从某一种分布中随机取出来的,可是我们并不知道这个分布具体的参,即"模型已定, ...
- Minimum Snap轨迹规划详解(1)轨迹规划
一. 轨迹规划是什么? 在机器人导航过程中,如何控制机器人从A点移动到B点,通常称之为运动规划.运动规划一般又分为两步: 1.路径规划:在地图(栅格地图.四\八叉树.RRT地图等)中搜索一条从A点到B ...
- FZU 2215 Simple Polynomial Problem(简单多项式问题)
Description 题目描述 You are given an polynomial of x consisting of only addition marks, multiplication ...
- Project Euler 101 :Optimum polynomial 最优多项式
Optimum polynomial If we are presented with the first k terms of a sequence it is impossible to say ...
- 用正则表达式(regex)匹配多项式(polynomial)
因为作业的要求,我需要识别用户从命令行输入的多项式,并且要提取出其中的系数.指数以便用于后续计算. 曾经想过用一个数组把用户所有的输入全部存进来,然后在写逻辑判断.但想想那复杂的逻辑,头皮都发麻,这时 ...
- 数据拟合:多项式拟合polynomial curve fitting
http://blog.csdn.net/pipisorry/article/details/49804441 常见的曲线拟合方法 1.使偏差绝对值之和最小 2.使偏差绝对值最大的最小 3 ...
- (多项式)因式分解定理(Factor theorem)与多项式剩余定理(Polynomial remainder theorem)(多项式长除法)
(多项式的)因式分解定理(factor theorem)是多项式剩余定理的特殊情况,也就是余项为 0 的情形. 0. 多项式长除法(Polynomial long division) Polynomi ...
随机推荐
- Tensorflow 2.0 深度学习实战 —— 详细介绍损失函数、优化器、激活函数、多层感知机的实现原理
前言 AI 人工智能包含了机器学习与深度学习,在前几篇文章曾经介绍过机器学习的基础知识,包括了监督学习和无监督学习,有兴趣的朋友可以阅读< Python 机器学习实战 >.而深度学习开始只 ...
- GoLang设计模式02 - 工厂模式
工厂模式是一种创建型模式,也是最常用的设计模式之一.调用方通过工厂产出并获取对象,可以不必关注对象创建的细节和构建逻辑. 在工厂模式下,调用方只和工厂进行交互,并告诉工厂具体获取哪种类型的对象.工厂负 ...
- [考试总结]noip模拟43
这个题目出的还是很偷懒.... 第一题...第二题...第三题...四.... 好吧... 这几次考得都有些问题,似乎可能是有些疲惫,脑袋也是转不太动,考完总觉得自己是能力的问题,但是改一分钟之后会发 ...
- 斐波那契数(Java)
斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 .该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就是: F(0) = 0,F(1) = 1 F(n) = F(n ...
- 借助AWR报告分析解决oracleCPU过高的问题
原文地址:http://www.cnblogs.com/crystal-guoguo/p/4213458.html 简介:在oracle数据库中,有两个非常实用的自带监控工具EM(Enterprise ...
- Insecure CAPTCHA (不安全的验证码)
dvwa不能正常显示,需要在配置文件中加入谷歌的密钥: $_DVWA[ 'recaptcha_public_key' ] = '6LfX8tQUAAAAAOqhpvS7-b4RQ_9GVQIh48dR ...
- CodeForce-734C Anton and Making Potions(贪心+二分)
CodeForce-734C Anton and Making Potions C. Anton and Making Potions time limit per test 4 seconds m ...
- Java基础系列(31)- 可变参数
可变参数 JDK1.5开始,Java支持传递同类型的可变参数给一个方法 在方法声明中,在指定参数类型后加一个省略号(...) 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数.任何普通的参数 ...
- Shell系列(23)- 字符截取命令sed
简述 字符替换命令sed 和vi功能相似,但是vi是给用户用的,sed是给脚本用的 sed是一种几乎包括在所有的UNIX平台(包括Linux)的轻量级流编辑器.s sed主要是用来将数据进行选取.替换 ...
- Java面向对象系列(12)- Static关键字讲解
场景一:静态变量 package oop.demo07; public class Student { private static int age;//静态的变量 一般多线程用的比较多 privat ...