描述

(1)多项式的项必须按其指数从高到低排列。 (2)指数必须跟在符号“^”后显示。 (3)有常数的只显示常数项。 (4)只显示系数不为0的项;系数全0,需显示常数项。 (5)项与项间的加号或减号的两边需加上空格。 (6)首项是正系数,其前不加符号,否则加负号,负号 与系数间不加空格。 (7)负系数的项要显示成减一个正数项。 (8)系数是1,指数为0时,系数的1才显示。

我的想法

原题语句不通实在叫人难受,这是在网上找到的较好版本,原题是2013SHU暑期集训(感谢默默如潮的博客),当然百度文库里沈云付老师的<分治与构造>也有这道题,不过还不适合我这种萌新。然而问题是博客里给出的AC代码测试后有一些问题然而它AC了,本渣辛辛苦苦码的则是玄学wrong answer。故在此贴出代码希望有大佬能看出我的问题所在。另外再吐槽一下OJ里样例那神奇的负号是怎么打出来的。

代码比对

AC代码

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int a[10];
void Print()
{int j=0;while (a[j]==0 && j<8)++j;bool flag=false;if (j==8)flag=true;if (j!=8){if (a[j]<0){printf("-");a[j]*=-1;}if (a[j]>1){if (j<7) printf("%dx^%d",a[j],8-j);if (j==7) printf("%dx",a[j]);}else{if (j<7) printf("x^%d",8-j);if (j==7) printf("x");}}if (j!=8) ++j;while (j<8){while (a[j]==0)++j;if (j>=8) break;printf(" ");if (a[j]>0)printf("+ ");else{printf("- ");a[j]*=-1;}if (a[j]>1){if (j<7)printf("%dx^%d",a[j],8-j);if (j==7)printf("%dx",a[j]);}else{if (j<7)printf("x^%d",8-j);if (j==7)printf("x");}++j;}if (a[j]!=0){if (!flag)printf(" ");if (!flag && a[j]>0)printf("+");if (a[j]<0){printf("-");a[j]*=-1;}if (!flag) printf(" ");printf("%d",a[j]);}else if (flag)printf("0");printf("\n");
}int main()
{while (scanf("%d",&a[0])!=EOF){for(int i=1;i<9;++i)scanf("%d",&a[i]);Print();}
}

WA代码

#include<stdio.h>
#include<string.h>
int main()
{int a[10];char str[100];const char *b;while(gets(str)!=NULL){int i;b=strtok(str," ");a[0]=atoi(b);for(i=1;i<9;i++){b=strtok(NULL," ");a[i]=atoi(b);}i=0;while(a[i]==0&&i<8)   //find the first term{i++;}if(i==8)printf("%d\n",a[i]);  //monomialelse if(i!=8){if(a[i]!=-1&&a[i]!=1)       //the first termprintf("%dx^%d",a[i],8-i);else if(a[i]==1)printf("x^%d",8-i);else if(a[i]==-1)printf("-x^%d",8-i);for(i=i+1;i<7;i++)       //the middle terms{if(a[i]>0&&a[i]!=1)printf(" + %dx^%d",a[i],8-i);else if(a[i]==1)printf(" + x^%d",8-i);else if(a[i]<0&&a[i]!=-1)printf(" - %dx^%d",a[i]*(-1),8-i);else if(a[i]==-1)printf(" - x^%d",8-i);}if(a[i]>0&&a[i]!=1)       //the x termprintf(" + %dx",a[i]);else if(a[i]==1)printf(" + x");else if(a[i]<0&&a[i]!=-1)printf(" - %dx",a[i]*(-1));else if(a[i]==-1)printf(" - x");i++;if(a[i]>0)             //the last termprintf(" + %d\n",a[i]);else if(a[i]<0)printf(" - %d\n",a[i]*(-1));else if(a[i]==0)printf("\n");}memset(str,100,'\0');}return 0;
}

输入

0 0 1 2 3 4 5 6 7
0 0 0 0 0 0 -55 5 0
0 0 0 0 0 0 0 0 0
1000 1000 0 3 6 -55 -100 3 0
-1 0 1 0 0 0 6 0 -1
0 0 0 6 -1 2 0 0 0
1000 205 320 56 54 -3 0 0 0

输出对比


疑惑

第一个是AC代码的输出第二个是我自己代码的输出。可以看到在倒数两行数据上“AC”代码最后的常数项都出现了输入中并不存在的2。这个2是怎么冒出来的以及这是怎么AC过的(怎么想都是我写的代码对)?还望高人指点。

SHUOJ多项式构造相关推荐

  1. matlab二元多项式求值,matlab多项式代入求值

    Matlab 多项式运算与方程求根 ? Matlab多项式运算无论是在线性代数中,还是信号处理.自动控制等理论 中,多项式运算都有着十分重要的地位,因此,MATLAB 为多项式的操作提供了相应的函数库 ...

  2. numpy.polynomial 常见多项式操作

    numpy.polynomial 常见多项式操作 文章目录 构造一元多项式 多项式与数直接相乘和加减 快速求某点处的值 poly1d 的 attributes poly1d 的 Methods 积分 ...

  3. 每天进步一点点《ML - 线性回归》

    本系列Machine Learning 的学习博文很大部分全是受教于 Andrew Ng 的Stanford录制的ML视频,我的男神. 致敬男神! 第一次写这样系列的博文,单纯是为了记录自己的所学,做 ...

  4. matlab中的g2(t)是什么,matlab实验1-8带答案,,

    实验一Matlab 基本操作 一.实验目的:1.掌握矩阵和多项式构造和运算方法.2.能够用常用函数进行简单问题求解.3.能够进行Matlab 数值运算.二.实验内容: 1.用Matlab 可以识别的格 ...

  5. halcon 旋转_HALCON高级篇:面阵相机模型及其坐标转换

    面扫相机 图1: 针孔相机的透视映射 图1展示了一个针孔相机产生的透视映射.世界点P通过镜头的光中心映射到图像面上的P',其距离光中心的距离为f(焦距).实际上,术语"焦距"不是很 ...

  6. 路径规划之基于插值的规划算法

    关注同名微信公众号"混沌无形",有趣好文! 原文链接:机器人曲线插值拟合算法研究现状简述(包含原文PDF百度云下载链接) 第一类是采用多项式曲线来描述机器人运动轨迹,这是因为多项式 ...

  7. 机器人曲线插值拟合算法研究现状简述

    混沌无形 混沌系统是世界本质,无形之中存在规律.机器人智能化发展从线性过渡到混沌,本号将分享机器人全栈技术(感知.规划.控制:软件.机械.硬件等). 38篇原创内容 公众号 [文末提供原文PDF免费下 ...

  8. 可用于SDR的C语言纠错编码通用算法收集(1)-朴素字典查表BCH纠错

    在开设了SDR软件无线电课程后,有余力的学生开始尝试开发自己的小通信电台,实现Hello World的无线传输.在实验过程中,一定会遇到纠错的问题.即使是在实验室,理想化的信道也是不存在的.没有纠错的 ...

  9. lagrange 插值实现和龙格现象

    lagrange 插值实现 import numpy as np #数值运算 import sympy import matplotlib.pyplot as pltclass LagrangeInt ...

最新文章

  1. P4568 [JLOI2011]飞行路线
  2. postgresql 使用指南
  3. ECS应用管理最佳实践
  4. 关于无法加载sass 模块问题。vue2.0中报错ERROR :scss can't resolve 'scss-loader'
  5. 气体润滑轴承matlab分析,气体润滑轴承的研究与发展
  6. F - Sugoroku2(动态规划)
  7. python历史波动率_历史波动率计算(旧文)
  8. windows系统如何进入环境变量
  9. linux下c 指针变量大小,C语言sizeof关键字
  10. 关于C#中虚方法重载的说明
  11. mysql 判断数据是否在_MySQL更新数据之前是否判断数据是否有被修
  12. 【elasticsearch】ES 单分片使用 From/Size 分页遇到重复数据
  13. 解决笔记本键盘禁用失败问题
  14. 矩阵的舒尔补(Schur complement)
  15. 富士胶片展示透明投影膜、CMF表面装饰材料及HydroAg+抗菌技术
  16. 入侵防御(IPS)技术
  17. spring cloud 集成sentinel 报错 Failed to introspect Class
  18. HTML中nbsp; ensp; emsp; thinsp; zwnj; zwj;等6种空白空格的区别
  19. MOSFET驱动电路
  20. linux系统命令作业

热门文章

  1. 数字化颠覆全球金融生态,金融数字化人才转型将是未来最好的出路
  2. 苹果x屏幕多少钱_iphone7plus屏幕失灵,7p换屏幕多少钱
  3. 小红书新媒体运营推广策略
  4. 10行Python代码能做出哪些有趣的事情?
  5. php置顶文章,zblogPHP 调用某分类的置顶文章
  6. Qemu退出快捷键和原理解析
  7. phpcms V9的各种功能总结
  8. 华为手机 TalkBack
  9. AE2018插件AfterCodecs v1.9.0安装教程,(AE mp4)
  10. 三网合一短信平台企业自己可以弄吗?三网合一短信是否可以统一显示号码