luogu#P4893. GodFly的求导工具

GodFly的求导工具

题目背景

“求得导中导,方为人上人。”作为一名铁头娃,GodFlyGodFly已不满足于简单的求导了。

题目描述

GodFlyGodFly为了证明自己的头铁,决定挑战一项任务:求一个具有大整数系数的nn次多项式函数的kk阶导。现在他希望聪明的你能够…静静地坐在那里看他求导。要知道,他可是能与神威-太湖之光匹敌的男人。

作为GodFlyGodFly的朋友,xhxxhx希望你能帮他写一个程序,与GodFlyGodFly一同计算导函数及导数。如果你的程序能跑过他的手算,xhxxhx会敲一下GodFlyGodFly的铁头。

*关于导数的几个运算法则:

f(x)=axnf(x)=ax^n,则f(x)=anxn1f'(x)=anx^{n-1}

F(x)=f(x)+g(x)F(x)=f(x)+g(x),则F(x)=f(x)+g(x)F'(x)=f'(x)+g'(x)

其中f(x)f'(x)g(x)g'(x)F(x)F'(x)分别表示f(x)f(x)g(x)g(x)F(x)F(x)的导函数。

不要被导数吓到,本题考点不在此

g(x)=ax3+bx2+cg(x)=ax^3+bx^2+c,则g(x0)=ax03+bx02+cg(x_0)=ax_0^3+bx_0^2+c

kk阶导即求kk次导数。

新样例:https://pan.baidu.com/s/1w64WmnnGtKyAluxrX3PkNg; 数据已更新。

输入格式

第一行,两个整数nnkk,含义见题面;

接下来一行,一个字符串表示函数,为“f(x)=anxn+an1xn1+....+a0x0f(x)=a_{n}x^n+a_{n-1}x^{n-1}+....+a_0x^0”,其中对于任意iiaixia_ix^i的项可能不出现,也可能出现多次,且aia_i均为正整数,但系数为11的项不输入aia_i,只输入xix^i

接下来一行一个数mm,表示询问个数;

接下来mm行,每行一个数**x0x_0**,表示求f(x)f(x)kk阶导在x0x_0处的导数,换句话说,假设g(x)g(x)f(x)f(x)kk阶导函数,求g(x0)g(x_0)

不存在多余空格及空行。

输出格式

mm行,每行一个数表示所求的导数值。

3 2
f(x)=x^3+2x^2+x^1+x^0
2
0
1
4
10

提示

【数据范围】

对于3030%的数据,n<=5n<=5ai<=100a_i<=100x0<=100x_0<=100,且对于任意0<=i<=n0<=i<=naixia_ix^i出现有且仅有一次,且保证数据以ii为关键字降序排列;

另有1010%的数据,k=0k=0

另有1010%的数据,k=1k=1

另有1010%的数据,n=kn=k

对于100100%的数据,n<=100n<=100k<=nk<=nm<=10m<=10ai<=105a_i<=10^5x0<=105x_0<=10^5

样例数据在**data.zip\derivative**中。

【样例说明】

f(x)f(x)求导,则一阶导f(x)=3x2+4x+1f'(x)=3x^2+4x+1;求二阶导,即对f(x)f'(x)再求导,得f(x)=6x+4f''(x)=6x+4;故所求f(0)=60+4=4f(0)=6*0+4=4f(1)=61+4=10f(1)=6*1+4=10

【提示】

PSPS:担心大家抱怨代码量大(出题人懒),较原题简化了许多。

如果你提前AKAK了,不妨看看一段铁头娃之间的对决:

《冯所长三导导死郑拔蚌》

冯所长······扑的只一导,正导在分式上,导得郑蚌头晕眼花,参数歪在半边,却便似开了个初等函数表,平方,根号,对勾一发都导出来。郑铁头算不过来,那把答案也丢在一边,口里只叫:“导得好!”冯所长骂道:“铁头娃!还敢应口!”提起笔来就分子只一导,导得火星四溅,头破血流,也似开了个二项式定理,三次、四次、五次都绽将出来。 两边看的人惧怕冯所长,谁敢向前来劝。

郑蚌导不出,讨饶。冯所长喝道:“咄!你是个铁头娃!若只和俺分类讨论到底,洒家倒饶了你!你如今对俺讨饶,洒家偏要分离参数!”又只一导,新函数上正着,却似做了一个常用导数表,指数,对数,分子分母一齐响。所长看时,只见郑蚌倒在地上,口里只有出的气,没了入的气,动弹不得。

冯所长假意道:“你这厮诈死,洒家再导!”只见头渐渐的没了。所长寻思道:“俺只指望消费这厮一顿,不想三导真个导死了他。洒家须扣分,又没题做,不如及早撒开。”拔步便走,回头指着试卷道:“这废题,洒家跳过!”一头算,一头大踏步去了。