• PAT甲级 1028 List Sorting (25分)(cin cout 超时问题)


    注意: 用scanf 和printf 进行输入输出 否则超时

    cin,cout速度慢的原因就是它会将数据先读入缓冲区,然后再读入,所以与scanf的直接读入会有点时间差距。

    1.换成scanf 和 printf输入输出

    2.加一条语句

    ios::sync_with_stdio(false);

    题目代码:

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <iostream>
     4 #include <algorithm>
     5 using namespace std;
     6 const int maxn = 0x3f3f3f3f;
     7 typedef long long ll;
     8 struct st{
     9     char num[10],name[10];
    10     int grade;
    11 }s[100005];
    12 bool cmp1(st p,st q) {
    13     return (strcmp(p.num,q.num) < 0);
    14 }
    15 bool cmp2(st p,st q) {
    16     if(strcmp(p.name,q.name) != 0) return (strcmp(p.name,q.name) < 0);
    17     return (strcmp(p.num,q.num) < 0);
    18 }
    19 bool cmp3(st p,st q) {
    20     if(p.grade != q.grade) return p.grade < q.grade;
    21     return (strcmp(p.num,q.num) < 0);
    22 }
    23 int main() {
    24     int n,c;
    25     scanf("%d%d",&n,&c);
    26     for(int i = 0; i < n; i++) {
    27         scanf("%s%s%d",s[i].num,s[i].name,&s[i].grade);
    28     }
    29     if(c == 1) sort(s,s+n,cmp1);
    30     else if(c == 2) sort(s,s+n,cmp2);
    31     else if(c == 3) sort(s,s+n,cmp3);
    32     for(int i = 0; i < n; i++) {
    33         printf("%s %s %d
    ",s[i].num,s[i].name,s[i].grade);
    34     }
    35     return  0;
    36 }
  • 相关阅读:
    20201016---不做清单
    20201014--增删改查
    20201013--什么是真实的自己?
    多态
    继承
    关键字
    分类思想
    常用的linux命令
    九九乘法表
    稀疏数组
  • 原文地址:https://www.cnblogs.com/LLLAIH/p/12258090.html
Copyright © 2020-2023  润新知