【PAT】A1002. A+B for Polynomials(输出格式问题、sort)
2018-03-12 21:33
363 查看
【PAT】advanced_1002. A+B for Polynomials(输出格式问题、sort)
@(PAT)链接:https://www.patest.cn/contests/pat-a-practise/1002
思路:
将两个多项式存入v1和v2中,然后遍历,在v2中找到v1的对应项,找到对应项就将v2中的系数添加,如果找不到,就在v2中添加v1的这个项。
需要注意的问题:
1. 最后结果是按指数下降的顺序输入的,因此要排序,用自带的sort然后自己写比较函数能够很好地解决。
2. 注意输出格式,题目说道输入行的最后一个符号不能是空格。一开始没注意,后面四个点是格式错误的,这是v1和v2中的相同指数项的系数相加结果为0导致的。然后修改了之后,发现又有最后一个点输出错误,这是因为得到的最后结果为0,需要只输出一个0(后面没有空格)。
My AC code:
#include <iostream> #include <vector> #include <algorithm> using namespace std; bool cmp(vector<float> v1, vector<float> v2) { return v1[0]> v2[0]; } int main() { vector< vector<float> > v1, v2; int k1, k2; scanf("%d", &k1); for (int i= 0; i< k1; i++) { float temp1, temp2; scanf("%f %f", &temp1, &temp2); vector<float> tempv; tempv.push_back(temp1); tempv.push_back(temp2); v1.push_back(tempv); } scanf("%d", &k2); for (int i= 0; i< k2; i++) { float temp1, temp2; scanf("%f %f", &temp1, &temp2); vector<float> tempv; tempv.push_back(temp1); tempv.push_back(temp2); v2.push_back(tempv); } for (int i= 0; i< k1; i++) { bool if_content= false; for (int j= 0; j< k2; j++) { if (v1[i][0]== v2[j][0]) { // found if_content= true; // add v2[j][1]+= v1[i][1]; } } // not found, add to v2 if (if_content== false) { vector<float> temp; temp.push_back(v1[i][0]); temp.push_back(v1[i][1]); v2.push_back(temp); } } sort(v2.begin(), v2.end(), cmp); vector< vector<float> > v3; for (int i= 0; i< v2.size(); i++) { if (v2[i][1]!= 0) { v3.push_back(v2[i]); } } if (v3.size()== 0) { printf("0"); } else { printf("%d ", v3.size()); } for (int i= 0; i< v3.size(); i++) { if (i== v3.size()- 1) { printf("%.0f %.1f", v3[i][0], v3[i][1]); } else { printf("%.0f %.1f ", v3[i][0], v3[i][1]); } } }
另外,为了方便,我引入了方便输出用的vector v3,其实也可以直接在v2上面判断输出。但是题目没有额外空间的要求,所以这样写方便快捷,我就引入了一个新的vector v3了。
相关文章推荐
- 杭电1002(可能是输出格式的问题,尚未查明WA原因)
- 1.输入输出操作格式对齐问题
- PAT(basic level) 1006 换个格式输出整数
- PAT1006. 换个格式输出整数 (15)
- PAT-乙级-1006. 换个格式输出整数 (15)
- 1006 换个格式输出整数 PAT
- PAT 1006. 换个格式输出整数 (15)
- PAT 1002. 写出这个数 (20)【逆序输出&&转化】
- (PHP)海量数据输出CSV文件时由于特殊字符引起的CSV文件格式异常的问题解决
- PAT 1006. 换个格式输出整数 (15)
- PAT 1006 乙等 (换个格式输出整数) c++
- XmlWriter输出xml文档编码格式问题
- PAT-乙级 1006 换个格式输出整数
- PAT 乙级 1006 换个格式输出整数
- PAT (Basic Level) Practise (中文)- 1006. 换个格式输出整数 (15)
- 1006. 换个格式输出整数 (15)——PAT乙级
- pat1006:换个格式输出整数
- (PAT乙级)换个格式输出整数(Python)
- [PAT(B)]1006. 换个格式输出整数 (15)源码
- PAT:1006. 换个格式输出整数 (15)