| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:终于用java过了这个bt题~~In Reply To:终于用java过了这个bt题~~ Posted by:zymx at 2005-09-10 10:33:20 用Java解这题,必须解决的是I/O瓶颈,和C/C++相似,如果我们用了
Scanner/Token,那几乎一定会导致超时。
采用Stream类的read(byte[])和write(byte[])方法,可以将时间缩短到
时限之内,加上BufferedStream wrapper后,时间可能再缩短到三分之一。
这是我的代码:
void solve()throws Exception{
BufferedInputStream in=new BufferedInputStream(System.in);
sz=in.read(a);
int N=nextInt();
byte c[]=new byte[N];
for(int i=0;i<N;i++)
c[i]=(byte)(nextDigit()+nextDigit());
int cf=0;
for(int i=N-1;i>=0;i--){
c[i]+=cf;
if (c[i]>=10) {cf=1;c[i]+=38;} else {cf=0;c[i]+=48;};
}
System.out.write(c);
System.out.println();
}
其中nextInt()和nextDigit()是自己写的parse函数,a是足够大的byte array.
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator