关于快读的疑问
  • 板块学术版
  • 楼主MilkyCoffee
  • 当前回复19
  • 已保存回复19
  • 发布时间2020/5/31 13:26
  • 上次更新2023/11/7 01:22:55
查看原帖
关于快读的疑问
317198
MilkyCoffee楼主2020/5/31 13:26

我们先对比下这两个代码:

// #include <bits/stdc++.h>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <string>
#include <cstdio>
#include <cstring>
using namespace std;

int n;

inline int read() {
    int res = 0, f = 1;
    char k;
    while (!isdigit(k = getchar())) if (k == '-') f = -1;
    while (isdigit(k)) {
        res = res * 10 + k - '0';
        k = getchar();
    }
    return res * f;
}

int main() {
    // n = read();
    cin >> n;
    cout << n << endl;
    return 0;
}

这是正常的输入n输出n的代码,

经过多次试验:

23ms、27ms、27ms、29ms、27ms

(23 + 27 * 3 + 29) / 5 = 26.6(ms)

对比一下下面的代码:

// #include <bits/stdc++.h>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <string>
#include <cstdio>
#include <cstring>
using namespace std;

int n;

inline int read() {
    int res = 0, f = 1;
    char k;
    while (!isdigit(k = getchar())) if (k == '-') f = -1;
    while (isdigit(k)) {
        res = res * 10 + k - '0';
        k = getchar();
    }
    return res * f;
}

int main() {
    n = read();
    // cin >> n;
    cout << n << endl;
    return 0;
}

经过多次试验:

31ms、31ms、32ms、32ms、30ms

(312 + 322 + 30) / 5 = 31.2(ms)

26.6ms明显比31.2ms要快很多

那为啥P1923用cin不行,用快读可以呢?

Tip:

我用的本地编译器可能很多人都没听说过,这个编译器的名字叫CodeRunner,原价60,还是比较快的。我手里有破解版,只收十块,要的私信

作死的广告

2020/5/31 13:26
加载中...