刷题防止Time Limit Exceeded(TLE)技巧

本文提供了关于如何在C++、Java和Python中提高编程效率的建议,包括使用更高效的输入输出方法,如C++中的scanf和printf替代cin和cout,Java中使用BufferedReader替代Scanner,以及在Python中利用psyco模块来加速程序执行。

1.C++ 

  不要使用cin,cout,该使用scanf和printf

2.Java

  不要使用Scanner,改用BufferedReader

3.Python

  在文件开始的地方加入 

import psyco
psyco.full()

 

转载于:https://www.cnblogs.com/dj0325/p/8520541.html

7-414 你会计算时间复杂度吗? 分数 20 作者 HZU-ACM 单位 惠州学院 温馨提示: 实际上代码复杂度的估计,需要靠自己经验,没有特定的方法,本的估计方法不是正确的,只是为了配合目而假设计的,同学们如果需要学习,可以通过课本资料来学习正确估计方法。 目描述 你是否在的时候,经常被TLETime Limit Exceeded 运⾏超时)困扰呢? 就拿这次比赛来说,尝试解决后面附加的时候,是不是也遇到运行超时了呢?(如果没遇到,说明你是个超厉害的大佬哈哈)其实在提交代码前,可以通过自己对代码的复杂度估计,加上目的时间限制,可以大概率知道是否会TLE。很多目都会给出数据范围,比如 n<=1000之类的。 对于目时间限制1s, 复杂度为O(n)的时候, n<=3e7 复杂度为O(n^2)的时候,n<=5000 复杂度是O(n^3)的时候,n<=300 …… 这些都是初步判断自己代码能否通过的技巧 有个很通用的非正确的估计方法,就是看代码的for循环层数 例子1: for (int i=0; i<n; i++) { int a=0; } 这个复杂度是O(n) 1s的时候,只有n<=3e7才不会TLE 例子2: for (int i=0; i<n; i++) { for (int j=0; j<n; j++) { int a=0; } } 这里两层for,复杂度估计为O(n^2) 1s的时候,只有n<=5000才不会TLE 例子3: for (int i=0; i<n; i++) { for (int j=0; j<n; j++) { for (int k=0; k<n; k++) { int a=0; } } } 这里三层for,复杂度估计为O(n^3) 1s的时候, 只有n<=300才不会TLE 为了简化,本的复杂度就看for的最深深度是几层,复杂度就是几次方 特别的,如果多次嵌套,例如 for (int i=0; i<n; i++) { for (int j=0; j<n; j++) { int a=0; //这里两层 } for (int j=0; j<n; j++) { for (int k=0; k<n; k++) { int a=0; //这里三层 } } } 这种情况,我们只看深度最深的for,这里是深度最深的for是3层,所以复杂度是O(n^3) 为了看同学们是否掌握了这个方法,打算考考大家 输入格式: 给出一个字符串表示代码,字符串的长度小于1000000,包含for和end,不包含空格(可以放心用scanf读取字符串), for表示一个for循环的开始,end表示一个for的结束,用上面举例, 例⼦1: forend 输出 O(n) 例⼦2: forforendend 输出 O(n^2) 例⼦3: forforforendendend 输出 O(n^3) 例⼦4: forforendforforendendend 输出 O(n^3) 数据保证嵌套正确,不会出现forendend这种情况 输出格式: 输出这个代码的复杂度,见输入描述的例子部分。 输入样例1: forend 输出样例1: 在这里给出相应的输出。例如: O(n) 输入样例2: forforendforforendendend 输出样例2: 在这里给出相应的输出。例如: O(n^3) 代码长度限制 16 KB 时间限制 1000 ms 内存限制 512 MB 栈限制 8192 KBC代码
最新发布
09-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值