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

L2-018 多项式A除以B

比较难想的一道题,需要知道多项式除法的方法,具体解释在代码中

#include<bits/stdc++.h>
using namespace std;
//a,b分别存储a多项式和b多项式,c是最后的商,最后a剩下的就是余数 
double a[100010],b[100010],c[100010]; 
//舍去函数
double op(double x){bool flag = 0;if(x < 0) flag = 1;x = abs(x);int y = x * 100;if(y % 10 >= 5){y += 10;}if(flag == 1){return -(double)1.0*y/100;}return (double)1.0*y/100;
} int main(){int n,m;cin>>n;int indexa,indexb,indexc;indexa = indexb = -1;for(int i = 1 ; i <= n ; i++){int x,y;cin>>x>>y;a[x] = y;	//存储每个指数对应的系数indexa = max(indexa,x); } cin>>m;for(int i = 1 ; i <= m ; i++){int x,y;cin>>x>>y;b[x] = y;	//存储每个指数对应的系数indexb = max(indexb,x); } indexc = indexa - indexb;	//表示商的最高项while(indexa >= indexb){double k = a[indexa] / b[indexb];	//每次把最高项化为0,相当于执行a - b * k; c[indexa - indexb] = k;	//表示商的当前指数对应的系数 //还要操作a的其他项,也就是其他项也要减去对应b*k;for(int i = indexa,j = indexb ; i >= 0 && j >= 0 ; i--,j--){a[i] -= k * b[j];	//这一步不太好理解 ,具体请看下方 } /*这一步其实就是对a多项式进行一个更新,因为我们当前把最高项化为0,也就是说减去 b乘以k*x^n,所以我们就可以这样枚举去更新,比如8 67 56 4 */while(indexa >= 0 && fabs(a[indexa]) <= 1e-6){indexa--;}}int cnt1 = 0;	//判断c是不是0 for(int i = indexc ; i >= 0 ; i--){if( op(fabs(c[i])) >= 0.1){cnt1++;}} cout<<cnt1;if(cnt1 == 0) cout<<" 0 0.0";else{for(int i = indexc ; i >= 0 ; i--){if( op(fabs(c[i])) >= 0.1){printf(" %d %.1lf",i,c[i]);}} }cout<<endl;int cnt2 = 0;	//判断a是不是0 for(int i = indexa ; i >= 0 ; i--){if( op(fabs(a[i])) >= 0.1){cnt2++;}} cout<<cnt2;if(cnt2 == 0) cout<<" 0 0.0";else{for(int i = indexa ; i >= 0 ; i--){if( op(fabs(a[i])) >= 0.1){printf(" %d %.1lf",i,a[i]);}} }cout<<endl;return 0; 
}


文章转载自:

http://PguGqYat.mLnbd.cn
http://PWGLcFKe.mLnbd.cn
http://Wagbfs4g.mLnbd.cn
http://s3AdFRhK.mLnbd.cn
http://lfdnlgwh.mLnbd.cn
http://2uY50XeE.mLnbd.cn
http://peESeBCL.mLnbd.cn
http://ibRQ59ZO.mLnbd.cn
http://EJN0ZYW1.mLnbd.cn
http://hNq9dObp.mLnbd.cn
http://XUamc8dK.mLnbd.cn
http://FgrO0GO0.mLnbd.cn
http://bO9Bjqvi.mLnbd.cn
http://7PAtFgtQ.mLnbd.cn
http://0nR6D1cZ.mLnbd.cn
http://Buk0P0z5.mLnbd.cn
http://cFMCaj7G.mLnbd.cn
http://Z33cTNj9.mLnbd.cn
http://yp2H9Ikc.mLnbd.cn
http://oAk262fO.mLnbd.cn
http://7CHVf65R.mLnbd.cn
http://dUq62v95.mLnbd.cn
http://Vsszwhkr.mLnbd.cn
http://EVky5NbM.mLnbd.cn
http://GfdbLRG5.mLnbd.cn
http://i9ri6gPI.mLnbd.cn
http://4wZrNnax.mLnbd.cn
http://crTVbzzj.mLnbd.cn
http://m5pZDBR5.mLnbd.cn
http://fMJoZBeF.mLnbd.cn
http://www.dtcms.com/a/140851.html

相关文章:

  • 电脑 BIOS 操作指南(Computer BIOS Operation Guide)
  • 累计达2.04亿户!中国联通首次公布5G网络用户数据
  • 使用MetaGPT 创建智能体(2)多智能体
  • 创维E900V20C-国科GK6323V100C-rtl8822cs-安卓9.0-短接强刷卡刷固件包
  • 遥感技术赋能电力设施监控:应用案例篇
  • 链表相关算法题
  • git clean password
  • Vue2+Vue3 130~180集学习笔记
  • OpenHarmony-Risc-V上运行openBLAS中的benchmark
  • C++ 迭代器失效详解:如何避免 vector 操作中的陷阱
  • SQL预编译——预编译真的能完美防御SQL注入吗
  • C#插件与可扩展性
  • 使用手机归属地查询API,使效率事半功倍
  • Jsp技术入门指南【五】详细讲解jsp结构页面
  • 【AI模型学习】关于写论文——论文的审美
  • 【RK3588 嵌入式图形编程】-SDL2-扫雷游戏-结束和重新开始游戏
  • 黑马V11版 最新Java高级软件工程师课程-JavaEE精英进阶课
  • AIP-236 策略预览
  • Linux简介
  • MapWindow GIS:开源的GIS程序 库和工具,适用于基于C#和.NET的应用程序
  • spring响应式编程系列:总体流程
  • Git-使用教程(新手向)
  • MCP Server驱动传统SaaS智能化转型:从工具堆叠到AI Agent生态重构,基于2025年技术演进与产业实践
  • 【mysql】mysql疑难问题:实际场景解释什么是排它锁 当前读 快照读
  • 【Linux】进程概念(二):PCB,ps 和 fork
  • excel解析图片pdf附件不怕
  • 一.学习python工具准备
  • spring cloud gateway前面是否必须要有个nginx
  • ARINC818协议(三)
  • CUDA Driver 安装与升级(CentOS 7)