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); 


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值