简单题,但测试数据量难道有几十万行么!
不能用Java的scanner 和 每行printf 这样做一定会TLE,一开始没意识到是I/O效率问题,还傻乎乎的想怎么优化。。。 被坑死了...
一模一样的算法 把IO换上BufferedReader和StringBuilder之后 190ms过了...
居然会差这么多!!!
题目本身的意思就是 每行会给出一系列用空格分隔的单词 读取然后每个单词反序输出
鉴于以上坑爹属性,难度系数=1
通过率数据:22.56% (6863/30411)
贴代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main
{
public static void main(String[] args) throws IOException
{
int N;
int i;
int M;
int j;
String s;
int x;
BufferedReader bi = new BufferedReader(new InputStreamReader(System.in)); //这货用来取代scanner
StringBuilder sb = new StringBuilder(); //这个用来做输出buffer
StringTokenizer tk = new StringTokenizer(""); //这个类可以用来从字符串取词 比循环快
String line="";
while (line.length()==0)
line=bi.readLine(); //取代 scanner.nextline
N=Integer.parseInt(line);
for (i=0;i<N;i++)
{
line="";
while (line.length()==0)
line=bi.readLine();
M=Integer.parseInt(line);
for (j=0;j<M;j++)
{
line=bi.readLine();
tk=new StringTokenizer(line);
while (tk.hasMoreTokens())
{
s=tk.nextToken();
for (x=s.length()-1;x>=0;x--)
{
sb.append(s.charAt(x));
}
if (tk.hasMoreTokens()) sb.append(' ');
}
sb.append("\n");
}
if (i<N-1) sb.append("\n");
}
System.out.print(sb);
}
}