关于Java语言可能发生的TLE 或 CE

skyair 2019-06-26 21:01:45 2024-07-02 15:30:10

请将Java公共的类名改成Main,否则将会出现CE的情况。

众所周知,由于语言本身实现的原因,Java比C/C++的计算速度慢20倍左右,因此使用Java语言提交的题目可能会出现即使算法正确但仍然时间超出限制(TLE)的情况。如果你使用Java语言提交并认为自己遇到了这种情况,你可以找讲师看一下代码,并提供以下解决方案:

  1. 帮你开大一些时限(目前一些可能被卡常的题目已经开大了)。
  2. 使用streamtokenizer读入,使用printwriter输出。
  3. 尽量对自己的代码进行常数优化。
  4. 考虑放弃Java使用C/C++。

下面给出优化的读入和输出的模板:

import java.io.*;
import java.util.*;
public class Main{
    public static void main(String[] args){
        try{
            StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));   
            st.nextToken();int n=(int)st.nval;//输入n

            //代码主体

            PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));
            pw.println(n);//输出n
            pw.flush();
            pw.close();
            
        }catch (IOException e) {
            e.printStackTrace();
        }
    }
}

祝Java党们好运。