最近想入手java敲题,奈何找了好久也没有几篇对ACMer友好的博客,没有专门总结的,有也是一些输入输出的问题,所以我想自己整理下,把acm竞赛常用的队列/优先队列,set,map,vector之类的util都整理下,再加一些java常用小技巧或者竞赛中可能坑到的地方,每一个我都争取给一个例题(老年选手也在恢复码力,题目可能比较水,希望大家见谅),希望可以为广大想入手java刷题的ACMer节省下时间~
ps:本人蒟蒻一枚,但热爱“总结”,如果本人“总结”的一些地方错误了,还请各位大佬评论更正,以防将错误知识误传给萌新~
ps:至于顺序可能比较乱,一般刷到相关的题目,查阅相关资料总结一波(其实因为老年蒟蒻选手入坑数模了,另外准备一些考试啊QAQ,再加上本蒟蒻很贪玩
java的读入输出优化
众所周知在竞赛里相比C++会慢很多,因此许多题目都单独给java开时限, 根据题目会是c++时限的2-10倍, 大家都知道c++里scanf与cin的读入输出效率不同,其实java里也有不同的读入输出方式,而且效率也大不相同,接下来我给大家总结一下我所知的几种读入输出方式~
1.最简单的系统读入输出方式
static Scanner in = new Scanner(System.in); //声明
int n = in.next(); //读入
System.out.println(ans); //输出
2.输出打印流
static Scanner in = new Scanner(new BufferedInputStream(System.in)); //亲测 这里加个buff好像并没什么用
static PrintWriter out = new PrintWriter(System.out); //主要是这里的打印流起了很大作用
out.println(ans); //打印结果
out.flush() //