PAT (Advanced Level) Practise 1002 解题报告
问题描述
A+B for Polynomials (25)
时间限制 400 ms
内存限制 65536 kB
代码长度限制 16000 B
判题程序 Standard
作者 CHEN, Yue
This time, you are supposed to find A+B where A and B are two polynomials.
Input
Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial: K N1 aN1 N2 aN2 ... NK aNK, where K is the number of nonzero terms in the polynomial, Ni and aNi (i=1, 2, ..., K) are the exponents and coefficients, respectively. It is given that 1 <= K <= 10,0 <= NK < ... < N2 < N1 <=1000.
Output
For each test case you should output the sum of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate to 1 decimal place.
Sample Input
2 1 2.4 0 3.2
2 2 1.5 1 0.5
Sample Output
3 2 1.5 1 2.9 0 3.2
大意是:
多项式加法
共两行输入数据,每行输入数据包括:K N1 aN1 N2 aN2 ... NK aNK,其中K是在多项式非零项的数量,Ni和aNi分别是指数和系数。
1<=K<=10,0<=NK<... < N2 < N1<=1000.
解题思路
- 数组下标作为次数,数值存储系数和;
- 边读入边计算最终非零项个数。
注意点:
- 系数和为0的项不计算在内;
- 输出结果不能有多余空格。
代码
错误版本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int i,j,n,m,s,t;
float a[1001],k;
memset(a,0,sizeof(a));
cin>>n;
for (i=0;i<n;i++)
{
cin>>j>>k;
a[j]=k;
}
t=n;
cin>>n;
for (i=0;i<n;i++)
{
cin>>j>>k;
if (a[j]==0) t++;
a[j]+=k;
if (a[j]==0) t--;
}
cout<<t<<' ';
n=t;
t=0;
for (i=1000;i>=0;i--)
{
if (a[i]!=0)
{
if (t<n)
{
printf("%d %.1f ",i,a[i]);
t++;
}
else printf("%d %.1f",i,a[i]);
}
}
return 0;
}
评测结果为全部格式错误。经过检查,防止最后多出空格的做法错了 不应该偷懒。。t的初始值应该设为1,或改变if的判断条件。
正确版本(用了更简便的输出)
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int i,j,n,m,s,t;
float a[1001],k;
memset(a,0,sizeof(a));
cin>>n;
for (i=0;i<n;i++)
{
cin>>j>>k;
a[j]=k;
}
t=n;
cin>>n;
for (i=0;i<n;i++)
{
cin>>j>>k;
if (a[j]==0) t++;
a[j]+=k;
if (a[j]==0) t--;
}
cout<<t;
for (i=1000;i>=0;i--)
if (a[i]!=0) printf(" %d %.1f",i,a[i]);
return 0;
}
提交记录
错误版本

修改后

PAT (Advanced Level) Practise 1002 解题报告的更多相关文章
- PAT (Advanced Level) Practise 1004 解题报告
GitHub markdownPDF 问题描述 解题思路 代码 提交记录 问题描述 Counting Leaves (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 1600 ...
- PAT (Advanced Level) Practise 1003 解题报告
GitHub markdownPDF 问题描述 解题思路 代码 提交记录 问题描述 Emergency (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题 ...
- PAT (Advanced Level) Practise 1001 解题报告
GiHub markdown PDF 问题描述 解题思路 代码 提交记录 问题描述 A+B Format (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判 ...
- PAT (Advanced Level) Practice 1002 A+B for Polynomials (25 分) 凌宸1642
PAT (Advanced Level) Practice 1002 A+B for Polynomials (25 分) 凌宸1642 题目描述: This time, you are suppos ...
- PAT (Advanced Level) Practise:1002. A+B for Polynomials
[题目链接] This time, you are supposed to find A+B where A and B are two polynomials. Input Each input f ...
- PAT (Advanced Level) Practise - 1094. The Largest Generation (25)
http://www.patest.cn/contests/pat-a-practise/1094 A family hierarchy is usually presented by a pedig ...
- 1079. Total Sales of Supply Chain (25)【树+搜索】——PAT (Advanced Level) Practise
题目信息 1079. Total Sales of Supply Chain (25) 时间限制250 ms 内存限制65536 kB 代码长度限制16000 B A supply chain is ...
- 1076. Forwards on Weibo (30)【树+搜索】——PAT (Advanced Level) Practise
题目信息 1076. Forwards on Weibo (30) 时间限制3000 ms 内存限制65536 kB 代码长度限制16000 B Weibo is known as the Chine ...
- 1064. Complete Binary Search Tree (30)【二叉树】——PAT (Advanced Level) Practise
题目信息 1064. Complete Binary Search Tree (30) 时间限制100 ms 内存限制65536 kB 代码长度限制16000 B A Binary Search Tr ...
随机推荐
- Socket网络编程(二)
udp协议发送消息案例 1.创建UdpServer(udp服务器端) package com.cppdy.udp; import java.net.DatagramPacket; import jav ...
- java----DOS命令
dir /? 查看帮助 dir /s 查看当前的目录,以及子目录
- cf1144G 将串分解成单调递增和递减子串(贪心)
这算哪门子dp.. 具体做法就是贪心,建立两个vector存递增序列递减序列,操作过程中a可以合法地匀一个给b 就是判断第i个数放在递增序列里还是放在递减序列里,需要根据后面的数来进行决策 #incl ...
- easyUI-datagrid带有工具栏和分页器的数据网格
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>数据 ...
- iOS 测试之非代码获取 iPhone 型号及其他信息
首先 安装libimobiledevice和ideviceinstaller $ brew uninstall ideviceinstaller $ brew uninstall libimobile ...
- c++ 链表基础功能实现
#include<stack> struct ListNode { int m_nValue; ListNode* m_pNext; }; ListNode* CreateListNode ...
- Unet 项目部分代码学习
github地址:https://github.com/orobix/retina-unet 主程序: ################################################ ...
- ConfigurationManager 类的使用
一.引用 命名空间: System.Configuration程序集: System.Configuration(位于 System.Configuration.dll) 二.示例 1.读取.增 ...
- 步步为营-76-用户登录(Session+Cookie)
说明:cookie是保存在浏览器的.Session是存储在服务器的 1 同样UI页面还是web前端提供 1.1 首先,经过验证码校验:将系统产生的验证码放入到Session中,然后取Session值注 ...
- 输出GPLT
L1-023 输出GPLT (20 分) 给定一个长度不超过10000的.仅由英文字母构成的字符串.请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符.当然,四种字符( ...