201812-2小明放学( 二 )


【201812-2小明放学】接下来的 n 行,每行包含空格分隔的两个整数 k、t 。
k=0 表示经过了一段道路,将会耗时 t 秒,此处 t 不超过 106;k=1、2、3 时,分别表示出发时刻,此处的红绿灯状态是红灯、黄灯、绿灯,且倒计时显示牌上显示的数字是 t,此处 t 分别不会超过 r、y、g 。
输出格式

201812-2小明放学

文章插图
输出一个数字,表示此次小明放学回家所用的时间 。
public class Main {public static void main(String[] args){Scanner scanner = new Scanner(System.in);int r = scanner.nextInt(),y = scanner.nextInt(),g = scanner.nextInt();int n = scanner.nextInt();int m = r+y+g;long total = 0;//经过的时间,可能会超出int的存储范围for(int i=0;ig){total+= m-temp;}}System.out.println(total);}}
和上面一题大同小异 。
-1图像旋转
问题描述
旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度 。
计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可 。
输入格式
输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数 。
接下来n行每行包含m个整数,表示输入的图像 。
输出格式
输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵 。
样例输入
2 3
1 5 3
3 2 4
样例输出
3 4
5 2
1 3
评测用例规模与约定
1 ≤ n, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数 。
public class demo15 {public static void main(String[] args){Scanner scanner = new Scanner(System.in);int n = scanner.nextInt(),m = scanner.nextInt();int[][] num1 = new int[n][m];for(int i=0;i
思路很简单,但是最后得分90,说是内存超限!!!
也就是需要我们进一步优化 。
输入优化
用JAVA解题一般用类来进行输入,但对时间要求严格的题,用它可能会超时,此时我们可以改用类进行输入,后者的效率更高 。
类java.io.可以获取输入流并将其分析为Token(标记) 。的方法读取下一个标记
默认情况下,认为下列内容是Token:字母、数字、除c和c++注释符号以外的其他符号 。如符号“/”不是Token,注释后的内容也不是,而"/"是Token 。单引号和双引号以及其总的内容,只能算一个Token 。
为了提高效率,使用,创建对象
StreamTokenizer st =new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
为了从流中获取标记,可以调用的()方法 。调用()方法以后,如果标记是字符串,可用s=st.sval,如果是整数用 int n=(int) st.nval得到 。
ACM标准输入输出JAVA版及性能优化_乔阳的博客-CSDN博客
修改后的满分代码 使用
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));String str;String[] temp;str = bufferedReader.readLine();temp = str.split(" ");int n = Integer.parseInt(temp[0]);int m = Integer.parseInt(temp[1]);int a[][] = new int[n][m];for(int i=0;i
使用
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.StreamTokenizer;class Input{StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));public int nextInt() throws IOException {in.nextToken();return (int)in.nval;}}public class Main {public static void main(String [] args) throws IOException {Input in = new Input();int n = in.nextInt(),m = in.nextInt();int[][] nums = new int[n][m];for ( int i = 0; i