PAT甲级1002水题飘过

 1 #include<iostream>
 2 #include<string.h>
 3 using namespace std;
 4
 5 double a[1005];
 6
 7 int main(){
 8     int n1, n2;
 9     while(scanf("%d", &n1) != EOF){
10         memset(a, 0, sizeof(a));
11         for(int i = 1; i <= n1; i++){
12             int x;
13             double y;
14             scanf("%d%lf", &x, &y);
15             a[x] += y;
16         }
17         scanf("%d", &n2);
18         for(int i = 1; i <= n2; i++){
19             int x;
20             double y;
21             scanf("%d%lf", &x, &y);
22             a[x] += y;
23         }
24         int cnt = 0;
25         for(int i = 0; i <= 1000; i++){
26             if(a[i] != 0) cnt++;
27         }
28         printf("%d", cnt);
29         for(int i = 1000; i >= 0; i--){
30             if(a[i] != 0){
31                 printf(" %d %.1lf", i, a[i]);
32             }
33         }
34         printf("\n");
35     }
36     return 0;
37 } 

原文地址:https://www.cnblogs.com/findview/p/11632010.html

时间: 2024-10-08 13:47:12

PAT甲级1002水题飘过的相关文章

PAT甲级1001水题飘过

1 #include<iostream> 2 using namespace std; 3 4 int main(){ 5 int a, b; 6 while(scanf("%d%d", &a, &b) != EOF){ 7 int c = a + b; 8 if(c == 0) printf("0\n"); 9 else{ 10 if(c < 0){ 11 printf("-"); 12 c = -c; 13

PAT 甲级1002 A+B for Polynomials (25)

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, an

PAT甲级1002 链表实现方法

题目: 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

PAT甲级1002.A+B for Polynomials (25)

题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805526272000000 解题思路: 由于是求两个多项式之和,并且多项式的指数是从大到小进行排列的,相加时有合并和消除的操作 因此选用了较为灵活的链表结构,将输入的第一个多项式使用链表存储起来,将第二个多项式的项依次输入, 对于加数每个项和被加数的每项的指数进行比较,如果大于其指数则插入在其前面,如果小于其指数,则比较 被加数的后一项,如果等于其指数,则将两

poj 1002:487-3279(水题,提高题 / hash)

487-3279 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 236746   Accepted: 41288 Description Businesses like to have memorable telephone numbers. One way to make a telephone number memorable is to have it spell a memorable word or phras

poj水题-1002 STL是神器,得用啊

很简单的一个,就是总超时.问题出在我使用的短平快,简单直接的方式已经不灵了. 这种情况我总结以下原因: 1.尽量用STL模板容器,qsort()等内置,他们优化得很好 2.不用的话需要了解哈希算法. 本题用了快排与哈希,自己写也行(麻烦),不写的话用qsort与STL map,否则超时.我用的当然是模板,短平快解决战斗. #include <iostream> #include <map> #include <string> using namespace std; s

【PAT甲级】1070 Mooncake (25 分)(贪心水中水)

题意: 输入两个正整数N和M(存疑M是否为整数,N<=1000,M<=500)表示月饼的种数和市场对于月饼的最大需求,接着输入N个正整数表示某种月饼的库存,再输入N个正数表示某种月饼库存全部出手的利润.输出最大利润. trick: 测试点2可能包含M不为整数的数据.(尽管题面说明M是正整数,可是根据从前PAT甲级题目的经验,有可能不是整数.....) 代码: #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using names

PAT甲题题解-1011. World Cup Betting (20)-误导人的水题。。。

题目不严谨啊啊啊啊式子算出来结果是37.975样例输出的是37.98我以为是四舍五入的啊啊啊,所以最后输出的是sum+0.005结果告诉我全部错误啊结果直接保留两位小数就可以了啊啊啊啊 水题也不要这么坑人啊啊啊啊 #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> using namespace std; int main() { double a[3];

PAT甲题题解-1012. The Best Rank (25)-排序水题

排序,水题因为最后如果一个学生最好的排名有一样的,输出的课程有个优先级A>C>M>E那么按这个优先级顺序进行排序每次排序前先求当前课程的排名然后再与目前最好的排名比较.更新 至于查询,建立id与索引的映射即可. #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <map> using namespace s