1002. A+B for Polynomials (25)
2015-07-06 14:23
381 查看
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
深深体会到,做题最重要的是,审清楚题意之后,要学会用简单聪明的办法来解决问题。不要盲目写代码,这题就是典型。一开始拿到题,我觉得自己并没有很好地想办法,用计算机的思维来思考解决办法。出去的路上,我突然灵光一现,觉得可以用数组的下标来存放指数,对应的值就是系数,十分钟搞定代码。所以思维很重要!
#include<vector> #include <sstream> #include<cmath> #include<iomanip> #include<iostream> #include <ctype.h> #include <stdlib.h> #include <algorithm> using namespace std; int main() { //利用下标表示指数,对应的值即是多项式的系数 int n, m; float polys[1001] = { 0 };//根据题意,指数不会超过1000 cin >> n; for (int i = 0; i < n; i++) { int exp = 0; cin >> exp; float coeff = 0; cin >> coeff; polys[exp] += coeff;//将系数存入对应指数的下标中,并加上原有的系数值 } cin >> m; for (int i = 0; i < m; i++) { int exp = 0; cin >> exp; float coeff = 0; cin >> coeff; polys[exp] += coeff; } int count = 0; for (int i=1000; i >=0; i--) { if (polys[i] != 0) { count++; } } cout << count; for (int i = 1000; i >= 0; i--) { if (polys[i] != 0) { cout << " " << i << " " << setiosflags(ios::fixed) << setprecision(1)<<polys[i];//注意题目要求小数点精度的问题,保留一位小数点 } } return 0; }
相关文章推荐
- 好的的记忆让学习更胜一筹
- 事务的并发处理带来的问题
- 黑马程序员----总结1(继承、异常)
- IOS下,利用捏合手势实现图像缩放和显示
- oracle字符串处理函数大全
- SAP里会话结束方法(杀死进程)
- 【LeetCode 173】Binary Search Tree Iterator
- Perl中的正则表达式(五)
- iOS 在viewController中监听Home键触发以及重新进入界面的方法
- 【项目管理】 并发服务设计的三种架构
- 金朝阳——软件测试试题11道题目分享
- How to make gdb print out all values in hexadecimal mode?
- c语言位运算有什么作用?
- RBAC模型(1)
- Cscope的使用(领略Vim + Cscope的强大魅力)
- 跨域访问设置
- Assignment (HDU 2853 最大权匹配KM)
- 物联通公司红外转发器的对码流程
- ZOJ 3822 Domination
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射