acm java输入输出_ACM中java如何快速输入输出
今天又遇到java做ACM超时的问题。
然后网上找了好多方法,最后总结出自己的。
java的Scanner 比较慢(出了名的了),但是ACM的要求有比较高。
java其实有别的解决方案,就是使用StreamTokenizer与PrintWriter。
也有大神有人使用别的方法,但我觉的都太麻烦了。
首先是定义:
StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));然后怎么判断是否到达文件结尾呢?
(相当于Java的while(scanner.hasNext()),或者C的while(scanf("%d",&n)!=EOF))
答案是:
while (in.nextToken() != StreamTokenizer.TT_EOF) {
StreamTokenizer.TT_EOF这个是个参数,就是相当于EOF了。
还有一些问题例如怎么读取,输出,等等,可以看下面的AC代码
题目链接是:http://acm.hdu.edu.cn/showproblem.php?pid=1029
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
public class P1029 {
public static void main(String[] args) throws IOException {
// 这句是io流包装,记住就好
StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
//StreamTokenizer.TT_EOF这个是个参数,就是EOF
while (in.nextToken() != StreamTokenizer.TT_EOF) {
int n = (int) in.nval;
int appears[] = new int[32768];// 记录出现次数
int max = 0;
for (int i = 0; i < n; i++) {
in.nextToken();//指向下一个
int num = (int) in.nval;//scanner.nextInt();
appears[num]++;
if (appears[num] >= (n + 1) / 2) {
max = num;
}
}
out.println(max);
out.flush();//刷新,不然max会留在缓冲区
}
}
}
acm java输入输出_ACM中java如何快速输入输出相关推荐
- acm之java输入输出_ACM中Java输入输出
最初写算法时,是用Scanner的.因为当时接触的测试数据基本都是以算法的复杂度为主,但是后面遇到大量的输入数据时.发现Scanner远远不能满足条件.下面列出几种常用的输入输出方式.(输出统一用pr ...
- 安卓JAVA调用lua_android中java与lua的相互调用
Android Studio Lua环境配置 开发环境 1. Android Studio 3.5 2. java sdk: 1.8.0 3.android sdk:28 配置环境 添加lua支持语法 ...
- vscode java环境_VSCode中Java开发环境的配置方法
vscode中怎么搭建Java开发环境?下面本篇文章给大家介绍一下VSCode配置Java开发环境的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 配置Java开发环境 主要参 ...
- acm教程 java版_ACM之java速成 (转)
//这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. //1. 输入: // 格式为:Scanner cin = ...
- ebs java并发_EBS中Java并发程序笔记(1)
在Oracle EBS中的Java并发程序(Java Concurrent Program)是系统功能中的一个亮点,它的出现使得用户可以在ERP系统中运行自己定义的Java程序.本文为学习笔记,所以不 ...
- Java笔记-JNI中Java与C语言解决中文乱码问题
目录 基本概念 演示过程 基本概念 这里我把他总结成4个步骤: 1. 找类,Java的String: 2. 找函数String类的方法,成员函数: 3. 设置要转换的字符和编码: 4. 程序生成编码后 ...
- java职业教育考试题_Java认证考试中Java构造方法题目解答
[Java认证考试中Java构造方法题目解答]java中,在创建一个新的对象的时候,会调用其父亲的构造方法,测试程序如下: class parent{ int a=5; public parent() ...
- 【Java】9、Java IO 流
文章目录 IO 流 什么是 IO 字节流 字节流概念 字节流读写文件 文件的拷贝 字节流的缓冲区 装饰设计模式 字节缓冲流 字符流 字符流定义及基本用法 字符流操作文件 转换流 File 类 File ...
- java程序设计有理数,《Java程序设计》复习题
<Java程序设计>复习题 "++"运算符的操作数个数是 A. 1个 B. 2个 C. 3个 D. 4个 ## Character流与Byte流的区别是 A. 每次读入 ...
最新文章
- 美国《消费者报告》实测特斯拉Model 3,“完全自动驾驶”名不符实
- 16种JavaScript设计模式(中)
- python什么是数据结构_〖Python〗-- 数据结构
- jax-ws实现WebService
- 时间加减计算器_手机上的计算器这样也可以,太方便了,赶快转告家人朋友
- raft算法与paxos算法相比有什么优势,使用场景有什么差异?
- tensorflow lstm从隐状态到预测值_机器学习100天-Day2405 循环神经网络RNN(LSTM)
- HTML5 API详解(15):History 不刷新也可以实现网页跳转
- 4月15日见?疑似一加8 Pro真机谍照曝光:开孔双曲面屏加持
- ASP.NET TreeView控件各个节点总是居中对齐,而不是左对齐的问题
- 通过了面试,却不会和hr聊薪水?
- php动态页面在ie浏览器中css布局板块全缩在中间,CSS网页布局开发时的常见问题及解决方法...
- 手机麦克风结构原理图_麦克风阵列的基本原理、结构组成及声学效果简介
- 论文Real-Time Lane and Obstacle Detection on the global System
- 适合老爸用的在线的LaTeX数学公式编辑器
- 关于Win10与Ubuntu18.04的装机教程与疑问解答
- 按例学construct2_滚动背景制作 (一)
- fedora14安装出错
- PhpStorm中实现代码自动换行
- Python编程-从入门到实践第15章课后习题详解
热门文章
- linux内核阅读感悟,读Kernel感悟-Linux内核启动-从hello world说起
- nodejs操作mysql查询返回的数据_nodejs连接mysql进行数据库查询返回前台数据的坑...
- mysql怎么添加默认约束_分享知识-快乐自己:MySQL中的约束,添加约束,删除约束,以及一些其他修饰...
- div滚动条怎么设置_【20201123】做个用户管理系统(7)——个人资料修改页面、用户头像设置页面的模板的制作...
- Android 屏幕(View)坐标系统
- Handler sendMessage 与 obtainMessage (sendToTarget)比较
- struts2中文乱码问题
- 如何计算java对象占用的内存
- Reddit 评级算法的工作原理
- Windows8 游戏开发教程-开篇