PAT (Advanced Level) Practise 1002 解题报告
2017-01-28 05:54
399 查看
GitHub
markdownPDF
问题描述
解题思路
代码
提交记录
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的项不计算在内;
输出结果不能有多余空格。
评测结果为全部格式错误。经过检查,防止最后多出空格的做法错了 不应该偷懒。。t的初始值应该设为1,或改变if的判断条件。
正确版本(用了更简便的输出)
修改后
markdownPDF
问题描述
解题思路
代码
提交记录
问题描述
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 1003 解题报告
- PAT (Advanced Level) Practise 1004 解题报告
- PAT (Advanced Level) Practise 1001 解题报告
- pat(basic level) practise 解题报告
- PAT (Advanced Level) 1003. Emergency (25) 解题报告
- PAT (Advanced Level) 1126. Eulerian Path (25) 解题报告
- PAT (Advanced Level) 1004. Counting Leaves (30) 解题报告
- PAT (Advanced Level) 1127. ZigZagging on a Tree (30) 解题报告
- PAT (Advanced Level) 1100. Mars Numbers (20) 解题报告
- PAT (Advanced Level) Practise 1002 A+B for Polynomials
- PAT(Advanced Level) 1004 Counting Leaves 解题报告
- PAT (Basic Level) Practise (中文)1067. 试密码(20) 解题报告
- PAT (Advanced Level) 1101. Quick Sort (25) 解题报告
- PAT (Advanced Level) 1115. Counting Nodes in a BST (30) 解题报告
- PAT(Advanced Level) 1020 Tree Traversals 解题报告
- PAT (Advanced Level) Practise 1002 A+B for Polynomials (25)
- PAT (Basic Level) Practise(中文)----30题解题报告
- PAT (Advanced Level) 1102. Invert a Binary Tree (25) 解题报告
- PAT (Advanced Level) 1005. Spell It Right (20) 解题报告
- PAT (Advanced Level) 1006. Sign In and Sign Out (25) 解题报告