【发布时间】:2019-07-19 12:32:24
【问题描述】:
实际上,我遇到了一个竞争性问题,我需要输入一个大数组,但我收到 TLE 错误,所以除了传统方法之外还有其他方法可以减少 TLE。
我已经尝试了一些技巧,但它不起作用。
#include<bits/stdc++.h> //rather than other files
ios_base :: sync_with_stdio(false);
cin.tie(NULL)
时间减少了,但没有那么多。
那么除了这些还有其他方法可以减少输入整数到数组的输入时间吗?
【问题讨论】:
-
为了更快,您可以使用 read() 将输入数据从文件/标准输入大块地带到内存中,然后解析每个块。这比访问文件/标准输入的次数要多得多,每次读取的字符数要少得多。
-
您有两个主要问题:输入速度和转换速度。输入速度是你获取数据的速度。转换速度是将整数从文本表示转换为内部表示。如果您想要快速输入,请参阅
istream::read()方法。瓶颈是等待换行;否则您可以执行块或批量读取。 -
在线评委(或比赛)的大多数表现问题是算法。超时是由于选择了慢速算法。大多数问题或问题很少涉及优化技术(例如循环展开)。