#11955: JAVA TLE


boy330077 (unknown)

學校 : 不指定學校
編號 : 44678
來源 : [61.224.243.119]
最後登入時間 :
2017-11-18 20:19:11

import java.util.Scanner;
public class hello {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while (scan.hasNext()) {
int n = scan.nextInt();

_rec(n, 0, 0, "");
}
}

static void _rec(int n, int l, int r, String BS){
if(l<r){
return;
}
if((l==r)&&(l==n)){
System.out.printf("%s\n", BS);
return;
}

String str="";
if(l<n){
str = BS+"(";
_rec(n, l+1, r, str);
}

if(r<n){
str = BS+")";
_rec(n, l, r+1, str);
}
}
}

 

照討論的答案實做JAVA版 但是仍然TLE

#11956: Re:JAVA TLE


a22124186 (PROC ARC)

學校 : 臺北市立成功高級中學
編號 : 60110
來源 : [124.155.183.186]
最後登入時間 :
2017-04-30 13:48:32

雖然我沒學過JAVA,但是這一題大部分時間其實都花在輸出上面(可以試著把輸出comment掉去計算時間就知道了),

而討論區上的演算法應該是很簡潔很快速的了,所以在程式碼沒問題的前提下,我猜測是不是因為JAVA的輸出不夠快

導致TLE,畢竟JAVA和C/C++相較起來是屬較高階的語言。

#11960: Re:JAVA TLE


boy330077 (unknown)

學校 : 不指定學校
編號 : 44678
來源 : [61.224.243.119]
最後登入時間 :
2017-11-18 20:19:11

確實 將 println 拿掉 速度就可以,

 

但是查了很多方法 去做 output  效果都很慢,不知道之前  JAVA 可以  AC 的是用什麼 output 方式

#11961: Re:JAVA TLE


icube (!@#$%^&*()_+)

學校 : 不指定學校
編號 : 61090
來源 : [220.135.116.184]
最後登入時間 :
2024-08-24 18:11:03

確實 將 println 拿掉 速度就可以,

 

但是查了很多方法 去做 output  效果都很慢,不知道之前  JAVA 可以  AC 的是用什麼 output 方式



用 StringBuilder 把結果存起來,最後再一次輸出。

#11965: Re:JAVA TLE


boy330077 (unknown)

學校 : 不指定學校
編號 : 44678
來源 : [61.224.243.119]
最後登入時間 :
2017-11-18 20:19:11

謝謝, 已成功