#include
#define ll long long
#define inf 0x3f3f3f3f
#define ll long long
#define ull unsigned long long
using namespace std;
const int maxn = 1000+4;
const ll mod = 1e9+7;
ll a[maxn];
int n;
ll b[maxn];
/*測試用例 (函式)x^3-2*x+7
a=第0-4項和 115
最高次項3,代入項數4
*/namespace polysum return res;}
//函式用途:給出數列的(d+1)項,其中d為最高次方項
//求出數列的第n項,陣列下標從0開始
ll calcn(int d,ll *a,ll n)
rep(i,0,d+1)
ll ans=0;
rep(i,0,d+1)
return ans;
}void init(int m)
//函式用途:給出數列的(m+1)項,其中m為最高次方
//求出數列的前(n-1)項的和
ll polysum(ll m,ll *a,ll n) ^ a[i]
ll b[d];
for(int i=0;i<=m;i++) b[i]=a[i];
b[m+1]=calcn(m,b,m+1);
rep(i,1,m+2) b[i]=(b[i-1]+b[i])%mod;
return calcn(m+1,b,n-1);
}ll qpolysum(ll r,ll n,ll *a,ll m) ^ a[i]*r^i
if (r==1) return polysum(n,a,m);
a[m+1]=calcn(m,a,m+1);
ll r=powmod(r,mod-2),p3=0,p4=0,c,ans;
h[0][0]=0;h[0][1]=1;
rep(i,1,m+2)
rep(i,0,m+2)
c=powmod(p4,mod-2)*(mod-p3)%mod;
rep(i,0,m+2) h[i][0]=(h[i][0]+h[i][1]*c)%mod;
rep(i,0,m+2) c[i]=h[i][0];
ans=(calcn(m,c,n)*powmod(r,n)-c)%mod;
if (ans<0) ans+=mod;
return ans;
}} // polysum::init();
ll pow2(ll a,ll b)
return res%mod;
}int main()
cout<2)while(~scanf("%d",&n))
//
// now = 1;
// ans = 0;
//sort(a+1,a+1+n);
//for(int i = 1;i<=n;i++)
// ans = (ans%mod+now*(polysum::polysum(n-i+1,b,a[i]+1)%mod-polysum::polysum(n-i+1,b,a[i-1]+1)%mod+mod)%mod)%mod;
// now = (now%mod
*a[i]%mod)%mod;
// }
// printf("%lld\n",ans);
// }
}
例外一種n^2的更為靈活的多項式拉格朗日插值法
#include
#define ha 998244353
using namespace std;
int pow(int a,int b)
int lagrange(int
*arrx,int
*arry,int n,int
x) res=(res+1ll*s1
*pow(s2,ha-2)%ha
*arry[i])%ha;
}return res;
}int a[2010],b[2010];
int main()
模板 拉格朗日插值
由小學知識可知n個點 x i,y i 可以唯一地確定乙個多項式 y f x 那麼問題來了,既然這是小學的知識,那麼為什麼我這個初一的蒟蒻看到這玩意還是一臉懵呢 引入正題 我們改怎麼求出這個多項式呢?當然是用拉格朗日插值來求解啊,不然這題怎麼叫 拉格朗日插值 的模板呢 滑稽滑稽 那麼插值又是什麼東東呢...
模板 拉格朗日插值法
update 其實拉格朗日插值法的問題在於求分母的複雜度是 o n 2 的,要是還要求逆元則再多乙個 logp 變成 o n 2logp 但是當乙個多項式要重複使用的時候,也不必求出他的各個係數,只要預處理出各項分母的逆元之後,o nlogp 處理分子 求出字首積和字尾積 然後再插值,漸進複雜度和求...
Luogu P4781 模板 拉格朗日插值
洛谷傳送門 這是一道模板題 由小學知識可知,n nn 個點 xi yi x i,y i xi y i 可以唯一地確定乙個多項式 現在,給定 n nn 個點,請你確定這個多項式,並將 k kk 代入求值 求出的值對 998244353 998244353 998244 353 取模 輸入格式 第一行兩...