acm 防超时 防大数据手动输入 小技巧

1.debug时防止多次重复输入,要从文件读取输入信息,只需要在main下加入一行

freopen("input.txt","r",stdin);       

即可从创建的项目文件夹里读取文件信息到程序中,所以只需要事先把样例赋值了放在程序目录下即可

同理,要输出到文件,这样写即可

    freopen("output.txt", "w", stdout);  

2.超时,这里需要引入<ctime>(c中为<time.h>)头文件

然后重点来了,代码如下

#include <iostream>
#include <ctime>
using namespace std;

const int INF = 0x3f3f3f3f;
const int maxn = 1e7+5;
typedef long long ll;

int main() {
    int n,m;
    clock_t start,finish;
    start =clock();
    for(int i=0;i<INF;i++);
    finish = clock();
    cout << 1.0*(finish - start)/CLOCKS_PER_SEC<<endl;    
    return 0;
    }

定义开始时间和结束时间,分别在程序开头和结尾获取当前时间,然后相减即为滴答次数(程序每运算一次滴答次数+1,相当于钟摆),然后除以
CLOCKS_PER_SEC,这是time头文件的一个宏定义,代表一秒钟能够进行滴答的次数,用总次数除以单位时间,就为程序总耗时
含有输入的话可以结合1读取文件或者在输入结束后再获取start 的时间点.
3.输入输出挂
禁用cin cout与stdin,stdio的同步,可以将cin cout 提高到和scanf printf差不多的效率
ios::sync_with_stdio(false); 


posted @ 2018-04-10 14:23  秃头大师  阅读(263)  评论(0编辑  收藏  举报