題目描述學了數論後,小傑最近對整係數多項式在整點的取值感興趣,他現在來求助你幫他計算。
乙個整係數多項式通常表示為f(x)=a0+a1x+a2x2+a3x3+⋯+anxn,其中ai(i=0,1,2,⋯,n)為整數。
給定x∈z,求出f(x)mod1000000007。
輸入描述:
多組讀入。
每組的第一行,表示多項式f(x)
接下來是乙個整數n,接著一行有n個整數x,你需要求值f(x) mod 1000000007
組數不超過100,x在int表示的範圍內,f(x)所有項的係數和指數都在int表示的範圍內(指數保證非負)。
輸出描述:
對於每乙個,在單獨的一行中輸出乙個整數。
示例1
輸入3x^2+6x+10-3x
4 0
1 2 3輸出
10 16
28 46
備註:65%左右的多項式項數不超過20,查詢數不超過20
25%左右的多項式項數不超過100,查詢數不超過25
10%左右的多項式項數不超過10000,查詢數不超過100
注意:對於f(x)的單項式aix^i(i!=0),若係數ai為0,我們有時會忽略這些項,若i=1,可能表示為a1x^i或是a1x。因為某些原因,對於冪次相同的單項式可能出現多次。
#include
using
namespace
std;
#define ll long long
const ll mod = 1e9 + 7;
const ll maxn = 1e8;
char s[maxn];
int a[maxn] , b[maxn] , n = 0 , q;
void ini ()
, y[2] = , f = 1;
int len = strlen (s);
s[len++] = '+';
for (int i = 0; iif (s[i] <= '9'&&s[i] >= '0')
else
if (s[i] == 'x')
t = 1;
else
if (s[i] == '+' || s[i] == '-')
}}inline
int powf (int a , int b)
int main ()
}}
我們用a儲存係數,b儲存指數然後乙個個項按個運算過去即可。 多項式求值
例2 8 多項式求值 考察多項式p x n cix i i 0 如果cn 0,則p 是乙個n 維多項式。下面程式可用來計算對於給定的值x,p x 的實際取值。假定根據f o r迴圈內部所執行的加和乘的次數來估算時間複雜性。可以使用維數n 作為例項特徵。進入f o r迴圈的總次數為n,每次迴圈執行1次...
多項式求值
輸入的第一行為乙個整數 m m 1 leq m 181 m 18 表示多項式共有 m m 項。之後輸入 m m 行,每行有兩個元素,分別表示多項式各項的係數 c c 與次數 e e 1 leq c i 1001 ci 10 0,1 leq n 251 n 25 最後一行為待求多項式的變數值 x 0x...
4 2 多項式求值
本題要求實現乙個函式,計算階數為n,係數為a 0 a n 的多項式 函式介面定義 double f int n,double a,double x 其中n是多項式的階數,a中儲存係數,x是給定點。函式須返回多項式f x 的值。裁判測試程式樣例 include define maxn 10 doubl...