#P4893. GodFly的求导工具

GodFly的求导工具

题目背景

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

题目描述

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

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

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

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),g(x),F(x)f'(x),g'(x),F'(x) 分别表示 f(x),g(x),F(x)f(x),g(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; 数据已更新。

输入格式

第一行,两个整数 n,kn,k,含义见题面;

接下来一行,一个字符串表示函数,为“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

提示

【数据范围】

对于 30%30\% 的数据,n5n\le5ai100,x0100a_i\le100,x_0\le100,且对于任意 0in0\le i\le naixia_ix^i 出现有且仅有一次,且保证数据以 ii 为关键字降序排列;

另有 10%10\% 的数据,k=0k=0

另有 10%10\% 的数据,k=1k=1

另有 10%10\% 的数据,n=kn=k

对于 100%100\% 的数据,n100n\le100knk\le nm10m\le10ai105a_i\le10^5x0105x_0\le10^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=4,f(1)=61+4=10f(0)=6*0+4=4,f(1)=6*1+4=10

【提示】

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

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

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

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

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

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