当前位置: 首页 > news >正文

P4512 【模板】多项式除法

P4512 【模板】多项式除法

题目描述

给定一个n nn次多项式F ( x ) F(x)F(x)和一个m mm次多项式G ( x ) G(x)G(x),请求出多项式Q ( x ) Q(x)Q(x),R ( x ) R(x)R(x),满足以下条件:

  • Q ( x ) Q(x)Q(x)次数为n − m n-mnmR ( x ) R(x)R(x)次数小于m mm
  • F ( x ) = Q ( x ) ∗ G ( x ) + R ( x ) F(x) = Q(x) * G(x) + R(x)F(x)=Q(x)G(x)+R(x)

所有的运算在模998244353 998244353998244353意义下进行。

输入格式

第一行两个整数n nnm mm,意义如上。
第二行n + 1 n+1n+1个整数,从低到高表示F ( x ) F(x)F(x)的各个系数。
第三行m + 1 m+1m+1个整数,从低到高表示G ( x ) G(x)G(x)的各个系数。

输出格式

第一行n − m + 1 n-m+1nm+1个整数,从低到高表示Q ( x ) Q(x)Q(x)的各个系数。
第二行m mm个整数,从低到高表示R ( x ) R(x)R(x)的各个系数。
如果R ( x ) R(x)R(x)不足m − 1 m-1m1次,多余的项系数补0 00

输入输出样例 #1

输入 #1

5 1 1 9 2 6 0 8 1 7

输出 #1

237340659 335104102 649004347 448191342 855638018 760903695

说明/提示

对于所有数据,1 ≤ m < n ≤ 10 5 1 \le m < n \le 10^51m<n105,给出的系数均属于[ 0 , 998244353 ) ∩ Z [0, 998244353) \cap \mathbb{Z}[0,998244353)Z

思路

直接NTT即可。

代码

#include<bits/stdc++.h>usingnamespacestd;longlongn,m,nn=1,nn2=1,uv[4000006][2];constlonglongmod=998244353;longlonga[4000006],b[4000006],c[4000006],d[4000006],f[4000006],g[2000006],g2[2000006];longlongpow2(longlonga1,longlongb1){longlongc1=1;while(b1!=0){if(b1%2==1){c1=c1*a1%mod;}a1=a1*a1%mod;b1/=2;}returnc1;}voidntt(longlongn1,longlong*a1,longlongb1){if(n1<=1){return;}longlongax[n1/2],ay[n1/2];for(inti=0;i<=n1-1;i+=2){ax[i/2]=a1[i];ay[i/2]=a1[i+1];}ntt(n1/2,ax,b1);ntt(n1/2,ay,b1);longlongww,w=1;if(b1==1){if(uv[n1][0]==0){ww=pow2(3ll,(mod-1)*pow2(n1,mod-2)%mod);uv[n1][0]=pow2(3ll,(mod-1)*pow2(n1,mod-2)%mod);}else{ww=uv[n1][0];}}else{if(uv[n1][1]==0){ww=pow2(pow2(3ll,(mod-1)*pow2(n1,mod-2)%mod),mod-2);uv[n1][1]=pow2(pow2(3ll,(mod-1)*pow2(n1,mod-2)%mod),mod-2);}else{ww=uv[n1][1];}}for(inti=0;i<=n1/2-1;i++,w=w*ww%mod){a1[i]=(ax[i]+w*ay[i])%mod;a1[i+n1/2]=(ax[i]-w*ay[i]%mod+mod)%mod;}return;}intmain(){cin>>n>>m;for(inti=0;i<=n;i++){cin>>f[i];}for(inti=0;i<=m;i++){cin>>g[i];g2[i]=g[i];}for(inti=0;i<=n/2;i++){swap(f[i],f[n-i]);}for(inti=0;i<=m/2;i++){swap(g[i],g[m-i]);}for(inti=n-m+1;i<=m;i++){g[i]=0;}a[0]=pow2(g[0],mod-2);while(nn<=n-m+1+n-m+1){nn*=2;nn2=pow2(nn*2ll%mod,mod-2);for(inti=0;i<=nn-1;i++){c[i]=b[i]=0;}for(inti=0;i<=nn/2-1;i++){c[i]=a[i];}ntt(nn*2,a,1);for(inti=0;i<=nn-1;i++){b[i]=g[i];}ntt(nn*2,b,1);for(inti=0;i<=nn*2-1;i++){a[i]=a[i]*b[i]%mod;}ntt(nn*2,a,-1);for(inti=0;i<=nn*2-1;i++){a[i]=a[i]*nn2%mod;a[i]=mod-a[i];}a[0]=(a[0]+2ll)%mod;ntt(nn*2,a,1);ntt(nn*2,c,1);for(inti=0;i<=nn*2-1;i++){a[i]=a[i]*c[i]%mod;}ntt(nn*2,a,-1);for(inti=0;i<=nn*2-1;i++){a[i]=a[i]*nn2%mod;if(i>=nn){a[i]=0;}}}nn=1;while(nn<=n+n){nn*=2;}nn2=pow2(nn,mod-2);for(inti=n-m+1;i<=nn-1;i++){a[i]=0;}ntt(nn,a,1);for(inti=0;i<=nn-1;i++){b[i]=f[i];}ntt(nn,b,1);for(inti=0;i<=nn;i++){a[i]=a[i]*b[i]%mod;}ntt(nn,a,-1);for(inti=0;i<=nn-1;i++){a[i]=a[i]*nn2%mod;if(i>=n-m+1){a[i]=0;}}for(inti=0;i<=(n-m)/2;i++){swap(a[i],a[n-m-i]);//cout<<a[i]<<" ";}for(inti=0;i<=n-m;i++){//swap(a[i],a[n-m-i]);cout<<a[i]<<" ";}cout<<endl;for(inti=0;i<=m;i++){g[i]=g2[i];}for(inti=0;i<=n/2;i++){swap(f[i],f[n-i]);}nn=1;while(nn<=n+n){nn*=2;}nn2=pow2(nn,mod-2);for(inti=0;i<=nn-1;i++){b[i]=c[i]=0;}for(inti=0;i<=n-m;i++){c[i]=a[i];}ntt(nn,c,1);for(inti=0;i<=m;i++){b[i]=g[i];}ntt(nn,b,1);for(inti=0;i<=nn;i++){c[i]=c[i]*b[i]%mod;}ntt(nn,c,-1);for(inti=0;i<=nn-1;i++){c[i]=c[i]*nn2%mod;}for(inti=0;i<=n;i++){c[i]=(f[i]-c[i]+mod)%mod;}for(inti=0;i<=m-1;i++){cout<<c[i]<<" ";}cout<<endl;return0;}
http://www.jsqmd.com/news/498648/

相关文章:

  • 微信客服智能回复集成小程序的架构设计与实现
  • 趣味数学:董小姐和吾先生。
  • 企业级API演进十字路口(REST终局 or MCP起飞?):基于17家客户POC的ROI模型与迁移风险热力图
  • AnimateDiff实战应用:如何用AI生成生日派对惊喜短视频
  • RexUniNLU零样本NLU实操手册:ABSA属性情感联合抽取代码实例
  • 使用SolidWorks工程图GLM-OCR识别技术零件信息自动化录入
  • OpenClaw-CN 完整安装教程与避坑指南(国内镜像加速版)
  • DeepSeek-R1-Distill-Qwen-1.5B惊艳案例:二元一次方程推导全过程+Python爬虫生成实录
  • 【LLM】(一) LLM 是什么?一篇文看懂大语言模型的前世今生
  • yz-bijini-cosplay在二次元电商的应用:低成本打造视觉爆款
  • Fire Dynamics Simulator (FDS):从理论到实践的火灾动力学模拟工具
  • RMBG-2.0电商提效实战:日均500张商品图自动抠图流水线搭建指南
  • Llama Factory实战效果:手把手教你训练专属法律咨询AI助手
  • 机动车检测站检测员“三检合一”培训试卷[最新含答案](电子版文档)
  • 基于Qwen3-ASR-1.7B的智能家居控制系统:方言指令识别实践
  • Youtu-Parsing集成SpringBoot实战:构建企业级文档解析微服务
  • 2026沈阳GEO服务优质企业解析|锦恒智联深耕本土,全规模适配,以诚信实效赋能企业数字化增长
  • MusePublic与Anaconda科学计算环境集成指南
  • 2千万份不良反应报告挖信号?FAERS从数据搬运到情报分析升级路径
  • OneAPI惊艳效果展示:OneAPI+AutoGen+Microsoft Semantic Kernel集成
  • M1 Mac避坑指南:Xinference多引擎部署大模型实战
  • Windows与Office全版本智能激活:KMS_VL_ALL_AIO实战指南
  • 别再只懂点对点了!手把手拆解量子密钥分发(QKD)的三种经典组网模型:星型、总线型与环形
  • MPC-CBF 控制中的安全性与可行性平衡策略
  • DAMOYOLO-S部署教程:GPU显存碎片化问题诊断与supervisor内存限制
  • Youtu-Parsing模型卷积神经网络优化:提升图像文档特征提取能力
  • OFA-Image-Caption创意内容生产:辅助自媒体博主快速生成视频配文
  • 别再手动CK11N了!用SAP CK40N批量处理物料成本,效率提升90%的配置与执行心得
  • Jimeng AI Studio镜像免配置教程:无需conda/pip手动安装的Streamlit开箱即用方案
  • 基于nlp_structbert_sentence-similarity_chinese-large的文本去重实战:企业知识库构建完整指南