多项式除法
给定一个 次多项式 和一个 次多项式 ,请求出多项式 , ,满足以下条件:
- 次数为 , 次数小于
考虑一种翻转操作,,即
最后
cpp
pair<poly,poly> div(const poly &f,const poly &g){
int n=f.size(),m=g.size(),len=n-m+1;
poly fr=reverse(f,n),gr=reverse(g,m);
gr.resize(len);
for(int i=len;i<m;i++)gr[i]=0;
gr=inv(gr,len);
poly q=mul(fr,gr,n,len);
q=reverse(q,len);
poly r=sub(f,mul(q,g,len,m));
return {q,r};
}
void solve(){
int n,m;
cin>>n>>m;
poly f(n+1),g(m+1);
for(int i=0;i<=n;i++)cin>>f[i];
for(int i=0;i<=m;i++)cin>>g[i];
auto [q,r]=div(f,g);
for(int i=0;i<=n-m;i++)cout<<q[i]<<" \n"[i==n-m];
for(int i=0;i<m;i++)cout<<r[i]<<" \n"[i==m-1];
}