#11955: JAVA TLE


boy330077 (unknown)

學校 : 不指定學校
編號 : 44678
來源 : [61.224.243.119]
最後登入時間 :
2017-11-18 20:19:11
a229. 括號匹配問題 -- 名題精選百則 | From: [211.20.131.217] | 發表日期 : 2017-04-28 10:50

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
a229. 括號匹配問題 -- 名題精選百則 | From: [140.113.65.108] | 發表日期 : 2017-04-28 11:59

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

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

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

 
#11960: Re:JAVA TLE


boy330077 (unknown)

學校 : 不指定學校
編號 : 44678
來源 : [61.224.243.119]
最後登入時間 :
2017-11-18 20:19:11
a229. 括號匹配問題 -- 名題精選百則 | From: [211.20.131.217] | 發表日期 : 2017-04-28 14:54

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

 

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

 
#11961: Re:JAVA TLE


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

學校 : 不指定學校
編號 : 61090
來源 : [220.135.116.184]
最後登入時間 :
2024-08-24 18:11:03
a229. 括號匹配問題 -- 名題精選百則 | From: [220.135.116.184] | 發表日期 : 2017-04-28 22:11

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

 

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



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

 
#11965: Re:JAVA TLE


boy330077 (unknown)

學校 : 不指定學校
編號 : 44678
來源 : [61.224.243.119]
最後登入時間 :
2017-11-18 20:19:11
a229. 括號匹配問題 -- 名題精選百則 | From: [59.126.29.95] | 發表日期 : 2017-04-30 14:35

謝謝, 已成功

 
ZeroJudge Forum