• PTA 乙级 1038 统计同成绩学生 (20分) C/C++


     本以为挺简单的,随便写了写,然后就有了第一个版本

    注意本题输入输出一定不要用cin,cout,要用scanf,printf(否则更容易超时)

    C/C++

     1 #include<iostream>
     2 #include<vector>
     3 
     4 using namespace std;
     5 
     6 int main() {
     7     int n = 0, k = 0;
     8     int flag = 0;
     9     int search = 0;
    10     int num = 0;
    11     cin >> n;
    12     vector<int> grad(n);
    13     for (int i = 0; i < n; ++i) cin >> grad[i];
    14     cin >> k;
    15     for (int i = 0; i < k; ++i) {
    16         cin >> search;
    17         for (int j = 0; j < n; ++j) {
    18             if (search == grad[j])num++;
    19         }
    20         if (flag)cout << " ";
    21         cout << num;
    22         num = 0;
    23         flag = 1;
    24     }
    25     return 0;
    26 }

    然后最后一个测试点超时。。。

     所以,换一种思路吧

     1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 int main() {
     6     int n = 0, k = 0;    
     7     /*当前输入成绩*/
     8     int tmp = 0;
     9     /*空格输出标志位*/
    10     int flag = 0;
    11     /*0~100分数数组*/
    12     int grad[101] = { 0 };
    13     scanf_s("%d", &n);
    14     for (int i = 0; i < n; ++i) {
    15         scanf_s("%d", &tmp);
    16         if (tmp <= 100 && tmp >= 0)            //输入的成绩对应数组元素累加
    17             grad[tmp]++;
    18     }
    19     scanf_s("%d", &k);
    20     for (int i = 0; i < k; ++i) {
    21         scanf_s("%d", &tmp);
    22         if (flag)printf(" ");
    23         printf("%d", grad[tmp]);            //直接输出所查找同成绩的个数
    24         flag = 1;
    25     }
    26     return 0;
    27 }

     感觉本题就是为C准备的,用其他语言更容易超时

  • 相关阅读:
    简单RPC框架-业务线程池
    简单RPC框架-基于Consul的服务注册与发现
    简易RPC框架-学习使用
    统一配置中心2
    dubbo+zipkin调用链监控
    Spring Cache扩展:注解失效时间+主动刷新缓存
    转:深入理解Java G1垃圾收集器
    dubbo源码分析(一)
    理解WEB API网关
    理解zookeeper选举机制
  • 原文地址:https://www.cnblogs.com/SCP-514/p/13375371.html
Copyright © 2020-2023  润新知