首页 > 其他分享 >[NOIP2009 普及组] 多项式输出

[NOIP2009 普及组] 多项式输出

时间:2023-04-22 14:57:29浏览次数:52  
标签:输出 普及 系数 多项式 样例 NOIP2009 次项 quad

题目描述

一元 \(n\) 次多项式可用如下的表达式表示:

\[f(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots +a_1x+a_0,a_n\ne 0 \]

其中,\(a_ix^i\) 称为 \(i\) 次项,\(a_i\) 称为 \(i\) 次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式:

  1. 多项式中自变量为 \(x\),从左到右按照次数递减顺序给出多项式。

  2. 多项式中只包含系数不为 \(0\) 的项。

  3. 如果多项式 \(n\) 次项系数为正,则多项式开头不出 + 号,如果多项式 \(n\) 次项系数为负,则多项式以 - 号开头。

  4. 对于不是最高次的项,以 + 号或者 - 号连接此项与前一项,分别表示此项系数为正或者系数为负。紧跟一个正整数,表示此项系数的绝对值(如果一个高于 \(0\) 次的项,其系数的绝对值为 \(1\),则无需输出 \(1\))。如果 \(x\) 的指数大于 \(1\),则接下来紧跟的指数部分的形式为“\(x^b\)”,其中 \(b\) 为 \(x\) 的指数;如果 \(x\) 的指数为 \(1\),则接下来紧跟的指数部分形式为 \(x\);如果 \(x\) 的指数为 \(0\),则仅需输出系数即可。

  5. 多项式中,多项式的开头、结尾不含多余的空格。

输入格式

输入共有 \(2\) 行

第一行 \(1\) 个整数,\(n\),表示一元多项式的次数。

第二行有 \(n+1\) 个整数,其中第 \(i\) 个整数表示第 \(n-i+1\) 次项的系数,每两个整数之间用空格隔开。

输出格式

输出共 \(1\) 行,按题目所述格式输出多项式。

样例 #1

样例输入 #1

5 
100 -1 1 -3 0 10

样例输出 #1

100x^5-x^4+x^3-3x^2+10

样例 #2

样例输入 #2

3 
-50 0 0 1

样例输出 #2

-50x^3+1

提示

NOIP 2009 普及组 第一题

对于100%数据,\(0 \le n \le 100\),$-100 \le \(系数\) \le 100$


\(\text{upd 2022.8.1}\):新增加一组 Hack 数据。

代码及其思路

思路

系数为\(a\),项数为\(n\)

对项数进行循环\(i\)

若系数为\(0\),则不输出
若系数不为\(0\),进行输出
输出格式:
\(\quad\)如果不是首项且系数大于\(0\),那么输出\(+\)
\(\quad\)如果系数不是\(1\)或\(-1\)或者指数为\(0\),那么输出系数\(a\)
\(\quad\)如果系数是\(-1\)且指数不是\(0\),那么输出\(-\)
\(\quad\)如果指数大于\(1\),那么输出\(x\)^
\(\quad\)如果指数等于\(1\),那么输出\(x\)

上代码

#include<iostream>
using namespace std;
int main()
{
	int n,a;
	cin>>n;
	for(int i=n;i>=0;i--)
	{
		cin>>a;
		if(a!=0)
		{
			if(i!=n&&a>0)cout<<"+";
			if(a!=1&&a!=-1||i==0)cout<<a;
			if(a==-1&&i!=0)cout<<"-";
			if(i>1)cout<<"x^"<<i;
			if(i==1)cout<<"x";
		}
	}
	return 0;
}

标签:输出,普及,系数,多项式,样例,NOIP2009,次项,quad
From: https://www.cnblogs.com/114514-1919810/p/17343084.html

相关文章

  • [NOIP2016 普及组] 海港
    题目背景NOIP2016普及组T3题目描述小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。小K对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第\(i\)艘到达的船,他记录了这艘船到达的时间\(t_i\)(......
  • P1067 [NOIP2009 普及组] 多项式输出
    #[NOIP2009普及组]多项式输出##题目描述一元$n$次多项式可用如下的表达式表示:$$f(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0,a_n\ne0$$其中,$a_ix^i$称为$i$次项,$a_i$称为$i$次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项......
  • 多项式拟合曲线
     #importpandasaspd#importnumpyasnp#fromsklearn.preprocessingimportPolynomialFeatures#fromsklearn.linear_modelimportLinearRegression#importmatplotlib.pyplotasplt##ReadthedatafromtheExcelfile#data=pd.read_excel(r'......
  • 团体天梯练习 L2-018 多项式A除以B
    L2-018多项式A除以B这仍然是一道关于\(A/B\)的题,只不过\(A\)和\(B\)都换成了多项式。你需要计算两个多项式相除的商\(Q\)和余\(R\),其中\(R\)的阶数必须小于\(B\)的阶数。输入格式:输入分两行,每行给出一个非零多项式,先给出\(A\),再给出\(B\)。每行的格式如下:\(......
  • CodeStar2023年春第5周周赛普及进阶组
    T1:分段求平均数本题难度中等,划分型DP问题。用dp[i]表示前\(i\)个数最少划分成几段,对\(j=1,2,\cdots,i-1\)判断从\(a_j\)到\(a_i\)划分成一段时,平均数是否为整数,如果是整数,就更新\(dp[i]=\max(dp[i],dp[j-1]+1)\)初始值:\(dp[i]=i\)代码实现#include<b......
  • 随着电动汽车的普及,代理商将在小区电动汽车充电管理中扮演重要角色
    [1]关键词:智能电网;电动汽车充电;定价;主从博弈;双层优化;matlab[2]参考文献:《基于主从博弈的智能小区代理商定价策略及电动汽车充电管理》[3]主要内容:随着电动汽车的普及,代理商将在小区电动汽车充电管理中扮演重要角色。如何制定代理商的定价与购电策略,实现代理商与电动汽车车主双......
  • P1074 [NOIP2009 提高组] 靶形数独
    题目传送门思路就是一个填数独的小游戏不会填数独的先去自己玩几把众所周知,数独每一行、每一列、每一个3*3宫格内的数字均含1~9,且不重复所以我们设三个数组r[10][10],c[10][10],block[10][10]分别记录行、列、3*3宫格内数字的使用情况重点:剪枝我们知道,数独的玩法是先从已知......
  • CodeStar2023年春第4周周赛普及奠基组
    T1:字符串加密(二)本题难度简单,是一个模拟题,注意\(k\)可能非常大,需要先模\(26\)。代码实现#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;intmain(){stringm;cin>>m;llk;cin>>k;k%=26;stringans;......
  • w2 P1008 [NOIP1998 普及组] 三连击
      主要思路:构造一个judge函数,判断是否1-9都出现了。由于三位数范围为123-987,但因为要求三个数字比例为1:2:3,所以在遍历时的范围是123-987/3。遍历范围内的每一个整数x,并判断2x,3x是否满足judge函数,满足则输出这三个数,否则继续遍历。代码如下:#include<iostream>usingnamespac......
  • 基于模型预测控制(mpc)的车辆换道,车辆轨迹跟踪,换道轨迹为五次多项式
    基于模型预测控制(mpc)的车辆换道,车辆轨迹跟踪,换道轨迹为五次多项式,matlab与carsim联防控制YID:1550680497837661......