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

skyair 2019-06-26 21:01:45 2026-03-26 9:29:58

请将 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 党们好运。