NYOJ_语言入门

来源:互联网 发布:知乎 微星台式机 编辑:程序博客网 时间:2024/05/29 13:23
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=4*/import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.Scanner;public class NYOJ_4 {private static char chs[];public static void main(String[] args) {Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));int T = Integer.parseInt(sc.nextLine());while (T-- > 0) {chs = sc.nextLine().toCharArray();Arrays.sort(chs);//快排for (int i = 0; i < chs.length; i++) System.out.print(chs[i]+" ");System.out.println();}sc.close();}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=22*/import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;public class NYOJ_22 {private static int n, sum;private static boolean prime[] = new boolean[1001];// 线性素数筛选法static {prime[0] = true;prime[1] = true;for (int i = 2; i < 40; i++) {if (!prime[i]) {for (int j = i * i; j < 1001; j += i)prime[j] = true;}}}public static void main(String[] args) {Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));int t = sc.nextInt();while (t-- > 0) {n = sc.nextInt();sum = 0;int num;// 把n之前的素数相加for (int i = 0; i < n; i++) {num = sc.nextInt();if (!prime[num])sum += num;}System.out.println(sum);}sc.close();}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=24*/import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;public class NYOJ_24 {private static int n, min, max;private static boolean prime[] = new boolean[1000100];static {prime[0] = true;prime[1] = true;for (int i = 2; i < 1050; i++) {if (!prime[i]) {for (int j = i * i; j < 1000100; j += i)prime[j] = true;}}}public static void main(String[] args) {Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));int t = sc.nextInt();while (t-- > 0) {n = sc.nextInt();if (!prime[n])System.out.println(n + " " + 0);else if (n == 0 || n == 1)System.out.println(2 + " " + (2 - n));else {// 获取到一个比n大的素数max = n + 1;while (prime[max])max += 1;// 获取到一个比n小的素数min = n - 1;while (prime[min])min -= 1;// 比谁近int a = max - n, b = n - min;if (a >= b)System.out.println(min + " " + b);elseSystem.out.println(max + " " + a);}}sc.close();}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=33*///模拟题import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;public class NYOJ_33 {private static int n, m, x, y, z, max, tmpn;private static int arr[][] = new int[101][101];public static void main(String[] args) {Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));while (sc.hasNext()) {n = sc.nextInt();tmpn = n;max = n * n;m = 1;x = 1;y = n;z = 1;while (m <= max) {//右边的从上往下while (m <= max && x <= n) {arr[x++][y] = m++;}x--;y--;//下边的从右往左while (m <= max && y >= z)arr[x][y--] = m++;x--;y++;//左边的从下往上while (m <= max && x >= y)arr[x--][y] = m++;x++;y++;//上边的从左往右while (m <= max && y < n)arr[x][y++] = m++;x++;y--;n--;z++;}for (int i = 1; i <= tmpn; i++) {for (int j = 1; j <= tmpn; j++)System.out.print(arr[i][j] + " ");System.out.println();}}sc.close();}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=34*/import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;public class NYOJ_34 {private static int a, b, c;public static void main(String[] args) {Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));while (sc.hasNext()) {a = sc.nextInt();b = sc.nextInt();c = sc.nextInt();int i;for (i = 10; i < 101; i++) {if (i % 3 == a && i % 5 == b && i % 7 == c) {System.out.println(i);break;}}if (i == 101)System.out.println("No answer");}sc.close();}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=56*/import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;public class NYOJ_56 {private static int n, m, count_m;public static void main(String[] args) {Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));int t = sc.nextInt();while (t-- > 0) {n = sc.nextInt();m = sc.nextInt();count_m = 0;// n / m 表示 在 1 到 n 中所有的数中有n/m个能够整除b,直到n/m==0while (n / m > 0) {n /= m;count_m += n;}System.out.println(count_m);}sc.close();}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=60*/import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;public class NYOJ_60 {// 学生类public static class Student {public String name, stulead, weststu;public int tg, cg, thesis;public int sum;public Student() {}public Student(String name, int tg, int cg, String stulead, String weststu, int thesis) {this.name = name;this.tg = tg;this.cg = cg;this.stulead = stulead;this.weststu = weststu;this.thesis = thesis;}}private static Student[] stus = new Student[101];// 学生数组private static int x;public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int T = Integer.parseInt(br.readLine());while (T-- > 0) {Arrays.fill(stus, new Student());x = Integer.parseInt(br.readLine());String studata[];for (int i = 1; i <= x; i++) {studata = br.readLine().split(" ");stus[i] = new Student(studata[0], Integer.parseInt(studata[1]), Integer.parseInt(studata[2]), studata[3],studata[4], Integer.parseInt(studata[5]));}compare(stus);}}// 评比奖学金private static void compare(Student stus[]) {int max = 0, sum = 0;String who_getmaxmoney_name = "";for (int i = 1; i <= x; i++) {// 院士奖学金if (stus[i].tg > 80 && stus[i].thesis >= 1)stus[i].sum += 8000;// 五四奖学金if (stus[i].tg > 85 && stus[i].cg > 80)stus[i].sum += 4000;// 成绩优秀奖if (stus[i].tg > 90)stus[i].sum += 2000;// 西部奖学金if (stus[i].tg > 85 && stus[i].weststu.equals("Y"))stus[i].sum += 1000;// 班级贡献奖if (stus[i].cg > 80 && stus[i].stulead.equals("Y"))stus[i].sum += 850;// 找出拿钱最多的童鞋if (stus[i].sum > max) {max = stus[i].sum;who_getmaxmoney_name = stus[i].name;}sum += stus[i].sum;}System.out.println(who_getmaxmoney_name);System.out.println(max);System.out.println(sum);}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=65*/import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;public class NYOJ_65 {public static void main(String[] args) {Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));int t = sc.nextInt();while (t-- > 0) {int n = sc.nextInt();int pro, sum = 0;for (int i = 1; i <= n; i++) {pro = 1;for (int j = 1; j <= i; j += 2) {// i!!pro *= j;}sum += pro;}System.out.println(sum);}sc.close();}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=74*/import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;public class NYOJ_74 {private static int n, m;public static void main(String[] args) {Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));while (true) {n = sc.nextInt();m = sc.nextInt();if (n == 0 && m == 0)break;// 把两个数都分拆int a = n / 100;int b = n / 10 % 10;int c = n % 100 % 10;int d = m / 100;int e = m / 10 % 10;int f = m % 100 % 10;int count = 0;int yuo = 0, yut = 0;// 个位if (c + f > 9) {count++;yuo = 1;}// 十位if (b + e + yuo > 9) {count++;yut = 1;}// 百位if (a + d + yut > 9)count++;System.out.println(count);}sc.close();}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=97*/import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;public class NYOJ_97 {private static int M, X, Y, Z;public static void main(String[] args) {Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));int n = sc.nextInt();while (n-- > 0) {M = sc.nextInt();X = sc.nextInt();Y = sc.nextInt();Z = sc.nextInt();// (M * X)/(Y-X)哥哥追上弟弟用的时间System.out.println(String.format("%.2f", Z * ((float) (M * X) / (Y - X))));}sc.close();}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=100*/import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class NYOJ_100 {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int t = Integer.parseInt(br.readLine());String n;int count;while (t-- > 0) {n = Integer.toBinaryString(Integer.parseInt(br.readLine()));count = 0;for (int i = 0; i < n.length(); i++) {switch (n.charAt(i)) {case '1':count += 1;break;default:break;}}System.out.println(count);}}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=111*/import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class NYOJ_111 {private static int a, b, c, d, x, y, p, t;private static String n1[], n2[], num[];public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String str = null;while ((str = br.readLine()) != null) {if (str.contains("+"))num = str.split("\\+");elsenum = str.split("\\-");n1 = num[0].split("\\/");n2 = num[1].split("\\/");a = Integer.parseInt(n1[0]);b = Integer.parseInt(n1[1]);c = Integer.parseInt(n2[0]);d = Integer.parseInt(n2[1]);if (str.contains("+")) {x = a * d + b * c;y = b * d;} else {x = a * d - b * c;y = b * d;}p = x;t = y;// 约分if (x < y) {x = x ^ y;y = x ^ y;x = x ^ y;}while (y != 0) {x = x % y;x = x ^ y;y = x ^ y;x = x ^ y;}// 加法,x是公约数if (str.contains("+")) {if (p / x == 0)// 分子是0System.out.println(0);else if (p / x == t / x)System.out.println(p / x);else if (t / x == 1)// 分母是1System.out.println(p / x);elseSystem.out.println(p / x + "/" + t / x);} else {if (p / x > 0 && t / x < 0)System.out.println(-1 * p / x + "/" + (-1 * t / x));else if (p / x == t / x)System.out.println(p / x);else if (t / x == 1)System.out.println(p / x);else if (p / x == 0)System.out.println(0);elseSystem.out.println(p / x + "/" + t / x);}}}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=122*/import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class NYOJ_122 {private static int n, sum;public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int t = Integer.parseInt(br.readLine());int c = 1;while (t-- > 0) {n = Integer.parseInt(br.readLine());sum = 0;for (int i = 1; i <= n; i++) {for (int j = 1; j <= i + 1; j++) {sum += i * j;}}System.out.println(c++ + " " + n + " " + sum);}}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=125*/import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class NYOJ_125 {private static int n, step, second;// step是梦境的层数,second是现实过了多少秒private static String control[];private static int SPEED_VALUE = 20;// 第n层时间速度是n-1层的20倍public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int t = Integer.parseInt(br.readLine());while (t-- > 0) {n = Integer.parseInt(br.readLine());step = 0;// 一开始在0层,表示现实second = 0;for (int i = 1; i <= n; i++) {control = br.readLine().split(" ");if (control[0].equals("IN"))step++;else if (control[0].equals("OUT"))step--;else {int times = (int) Math.pow(SPEED_VALUE, step);// 该梦境的时间速度是显示的几倍int mins = Integer.parseInt(control[1]) / times;// 该梦境在现实中是几分钟double over = Double.parseDouble(control[1]) % times / times;// 余数second += mins * 60;// 将梦境里的时间转换成显示的秒second += over * 60;}}System.out.println(second);}}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=168*/import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;public class NYOJ_168 {private static int t, n, a, b, c, max;private static String data[];private static int arr[] = new int[200];public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));t = Integer.parseInt(br.readLine());while (t-- > 0) {n = Integer.parseInt(br.readLine());max = 0;Arrays.fill(arr, 0);for (int i = 1; i <= n; i++) {data = br.readLine().split(" ");a = Integer.parseInt(data[0]);b = Integer.parseInt(data[1]);c = Integer.parseInt(data[2]);// 从第b天到b+c天又都a个房子被住for (int j = b; j < b + c; j++) {// 叠加订单,如果第j天还有人住arr[j]间房子,那么此时就得增加a间房子arr[j] += a;if (max < arr[j]) {max = arr[j];}}}System.out.println(max);}}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=199*/import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class NYOJ_199 {private static int L, D, R;private static double len;private static String data[];public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int t = Integer.parseInt(br.readLine());while (t-- > 0) {data = br.readLine().split(" ");L = Integer.parseInt(data[0]);D = Integer.parseInt(data[1]);R = Integer.parseInt(data[2]);if ((R << 1) <= D)System.out.println("impossible");else {// 求出一个圆可以覆盖多长的长,宽和圆的直径用勾股定理求覆盖的长度len = Math.sqrt((R << 1) * (R << 1) - (D * D));System.out.println((int) Math.ceil(L / len));}}}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=244*/import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class NYOJ_244 {private static String mode[] = { "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011","1100", "1101", "1110", "1111" };public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(br.readLine());String data[], datas;while (n-- > 0) {datas = br.readLine();if (datas.contains("+"))data = datas.split("\\+");elsedata = datas.split("\\-");// 获取到两个相加或相减的数,十六进制转换成2进制String a = "", b = "";for (int i = 0; i < data[0].length(); i++) {if (data[0].charAt(i) <= '9')a += mode[data[0].charAt(i) - '0'];elsea += mode[data[0].charAt(i) - 87];}for (int i = 0; i < data[1].length(); i++) {if (data[1].charAt(i) <= '9')b += mode[data[1].charAt(i) - '0'];elseb += mode[data[1].charAt(i) - 87];}int result = 0;// 转成2进制转换成10进制,并且计算结果if (datas.contains("+"))result = Integer.parseInt(a, 2) + Integer.parseInt(b, 2);elseresult = Integer.parseInt(a, 2) - Integer.parseInt(b, 2);// 结果转换成8进制System.out.println(Integer.toOctalString(result));}}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=263*/import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Scanner;public class NYOJ_263 {private static int maxlen, minwid, tempencode, a, b, c;public static void main(String[] args) throws IOException {Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));int t = sc.nextInt();int n;while (t-- > 0) {n = sc.nextInt();maxlen = -1;minwid = Integer.MAX_VALUE;tempencode = 0;for (int i = 0; i < n; i++) {a = sc.nextInt();b = sc.nextInt();c = sc.nextInt();// 比长细if (a > maxlen || b < minwid) {maxlen = a;minwid = b;tempencode = c;} else if (a == maxlen || b == minwid) {// 长细一样,比编号if (a == maxlen && b == minwid && c > tempencode) {tempencode = c;// 长一样,俾细} else if (a == maxlen && b < minwid) {maxlen = a;minwid = b;tempencode = c;} else if (a > maxlen && b == minwid) {maxlen = a;minwid = b;tempencode = c;}}}System.out.println(tempencode);}sc.close();}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=811*/import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Collections;import java.util.Scanner;public class NYOJ_811 {private static int arr[] = new int[10000];private static ArrayList<Integer> queue = new ArrayList<Integer>();public static void main(String[] args) {Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));while (sc.hasNext()) {queue.clear();int n = sc.nextInt();for (int i = 0; i < n; i++)arr[i] = sc.nextInt();for (int i = 0; i < n; i += 3) {// 奇数组取最大queue.add(max(arr[i], arr[i + 1], arr[i + 2]));i += 3;if (i >= n)break;// 偶数组取最小queue.add(min(arr[i], arr[i + 1], arr[i + 2]));}Collections.sort(queue);//排序System.out.println(queue.get(n / 3 - 1));}sc.close();}private static int max(int a, int b, int c) {return Math.max(Math.max(a, b), c);}private static int min(int a, int b, int c) {return Math.min(Math.min(a, b), c);}}
package org.acm.newhand;/*http://acm.nyist.net/JudgeOnline/problem.php?pid=975*/import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;public class NYOJ_975 {private static int n, m;private static int arr[][] = new int[1000001][2];// 先把数据保存起来,往后递推static {for (int i = 125; i < 1000000; i++) {String str = String.valueOf(i);if (str.contains("521"))arr[i][0] = arr[i - 1][0] + 1;elsearr[i][0] = arr[i - 1][0];if (str.contains("5") && str.contains("2") && str.contains("1"))arr[i][1] = arr[i - 1][1] + 1;elsearr[i][1] = arr[i - 1][1];}}public static void main(String[] args) {Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));int count = 1;while (sc.hasNext()) {n = sc.nextInt();m = sc.nextInt();System.out.println("Case " + count++ + ":" + (arr[m][1] - arr[n - 1][1]) + " " + (arr[m][0] - arr[n - 1][0]));}sc.close();}}






0 0
原创粉丝点击