Binary number
Topic link
Analysis of ideas
AC code
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Integer string = scanner.nextInt(); System.out.println(Integer.toBinaryString(string)); } }
Huffman tree
Topic link
Analysis of ideas
AC code
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.PriorityQueue; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); PriorityQueue<Integer> list = new PriorityQueue<Integer>(); for (int i = 0; i < n; i++) { list.add(scanner.nextInt()); } int result = 0; while(list.size() > 1){ int a = list.poll(); int b = list.poll(); int temp = a+b; list.add(temp); result += temp; } System.out.println(result); } }
Compare odd and even numbers
Topic link
Analysis of ideas
AC code
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int odd = 0; int even = 0; for (int i = 0; i < n; i++) { if (scanner.nextInt() % 2 == 0) { even ++; }else{ odd ++; } } if (even > odd) { System.out.println("NO"); }else { System.out.println("YES"); } } }
Find the kth decimal
Topic link
Analysis of ideas
AC code
import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashSet; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); List<Integer>list = new ArrayList<>(); for (int i = 0; i < n; i++) { list.add(scanner.nextInt()); } int k = scanner.nextInt(); list = new ArrayList<>(new LinkedHashSet<>(list)); Collections.sort(list); System.out.println(list.get(k-1)); } }
Matrix power
Topic link
Analysis of ideas
AC code
import java.util.Scanner; public class Main { public static int size = 0; public static void main(String[] args) { Main mutiple = new Main(); mutiple.handle(); } public void handle(){ Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); size = n; int k = scanner.nextInt(); int [][] array = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { array[i][j] = scanner.nextInt(); } } int [][] origin = array; for (int i = 1; i < k; i++) { array = cheng(array, origin); } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { System.out.print(array[i][j]); if (j!= n-1) { System.out.print(" "); } } System.out.println(); } } public int[][] cheng(int [][] arrayA,int [][]arrayB){ int[][] result = new int[size][size]; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { int temp = 0; for (int l = 0; l < size; l++) { temp += arrayA[i][l] * arrayB[l][j]; } result[i][j] = temp; } } return result; } }
C Flip
Topic link
Analysis of ideas
AC code
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[][] array = new int[5][5]; for(int i = 0; i <5;i++){ for (int j = 0; j < 5; j++) { array[i][j] = scanner.nextInt(); } } int a = scanner.nextInt(); int b = scanner.nextInt(); String oper = a+""+b; int x = scanner.nextInt(); int y = scanner.nextInt(); int [][] newArray = new int[5][5]; switch (a) { case 1: for (int i = x-1; i < x + b -1; i++) { for (int j = y -1; j < y + b -1; j++) { newArray[i][j] = array[x+b+y-j-3][y+i-x]; } } break; case 2: for (int i = x-1; i < x + b -1; i++) { for (int j = y -1; j < y + b -1; j++) { newArray[i][j] = array[j- y + x][x+y+b-i-3]; } } break; default: break; } for(int i = 0; i <5;i++){ for (int j = 0; j < 5; j++) { if (i>= x-1 && i < x + b -1 && j>=y-1 && j < y + b -1) { System.out.print(newArray[i][j]); }else { System.out.print(array[i][j]); } if (j != 4) { System.out.print(" "); } } System.out.println(); } } }
play cards
Topic link
Analysis of ideas
AC code
import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedHashSet; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String string = scanner.nextLine(); String string2 = scanner.nextLine(); char[] array = string2.toCharArray(); int lenght = array.length; boolean isHave = false; switch (lenght) { case 1: int value = Integer.parseInt(string2); char[] arrayByhave = string.toCharArray(); for (int i = 0; i < arrayByhave.length; i++) { if (Integer.parseInt(arrayByhave[i] + "") > value ) { isHave = true; break; } } break; case 2: case 3: case 4: // System.out.println("ok"); int start = Integer.parseInt(array[0] + ""); for (int i = start + 1; i <= 9; i++) { String temp = ""; for (int j = 0; j < lenght; j++) { temp += i + ""; } //System. out. println ("temporarily generated string"+temp); if (string.contains(temp)) { isHave = true; break; } } break; case 5: String[] strArray = new String[]{"12345", "23456", "34567","45678","56789"}; int flag = 0; for (int i = 0; i < strArray.length; i++) { if (string2.equals(strArray[i])) { flag = i; break; } } String[] str1Array = string.split(""); List<String> list = new ArrayList<>(new LinkedHashSet<>(Arrays.asList(str1Array))); StringBuilder sb = new StringBuilder(); for (int i = 0; i < list.size(); i++) { sb.append(list.get(i)); } String listToString = sb.toString(); //System. out. println ("string"+listToString); for (int i = flag + 1; i < strArray.length; i++) { if (listToString.contains(strArray[i])) { isHave = true; break; } } break; default: break; } if (isHave) { System.out.println("YES"); }else { System.out.println("NO"); } } }
Tree lookup
Topic link
Analysis of ideas
AC code
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); List<Integer> list = new ArrayList<>(); for (int i = 0; i < n; i++) { list.add(scanner.nextInt()); } int depth = scanner.nextInt(); int vertexNumStart = 0; int vertexNumEnd = 0; for (int i = 1; i < depth; i++) { vertexNumStart += vertexsInDepth(i); } vertexNumEnd = vertexNumStart + vertexsInDepth(depth); int end = Math.min(list.size(), vertexNumEnd); if (end <= vertexNumStart) { System.out.println("EMPTY"); }else { for (int i = vertexNumStart; i < end; i++) { System.out.print(list.get(i)); if (i!= end -1) { System.out.print(" "); } } } } public static int vertexsInDepth(int depth) { return (int) Math.pow(2, depth -1); } }
lookup
Topic link
Analysis of ideas
AC code
import java.util.Scanner; public class Main { static Scanner scanner; static String string; public static void main(String[] args) { scanner = new Scanner(System.in); string = scanner.next(); int num = scanner.nextInt(); for (int i = 0; i < num; i++) { Main search = new Main(); search.handle(); } } public void handle(){ String opration = scanner.next(); char[] toArray = opration.toCharArray(); switch (toArray[0]) { case '0': int start = Integer.parseInt(toArray[1] + ""); int end = Integer.parseInt(toArray[1] + "") + Integer.parseInt(toArray[2] + ""); String subString = string.substring(start,end); subString = new StringBuilder(subString).reverse().toString(); string = new StringBuilder(string).replace(start, end, subString).toString(); break; case '1': int start1 = Integer.parseInt(toArray[1] + ""); int end1 = Integer.parseInt(toArray[1] + "") + Integer.parseInt(toArray[2] + ""); StringBuilder ToReplaceStrSb = new StringBuilder(); for (int i = 3; i < toArray.length; i++) { ToReplaceStrSb.append(toArray[i]); } String toReplaceStr = ToReplaceStrSb.toString(); string = new StringBuilder(string).replace(start1, end1, toReplaceStr).toString(); break; default: break; } System.out.println(string); } }
Complex set
Topic link
Analysis of ideas
AC code
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Scanner; public class Main { List<Fu> fus = new ArrayList<>(); static Scanner scanner; public static void main(String[] args) { scanner = new Scanner(System.in); Main fushu = new Main(); fushu.handle(); } public void handle() { fus.clear(); int num = scanner.nextInt(); scanner.nextLine(); for (int i = 0; i < num; i++) { String oper = scanner.nextLine(); String[] operArray = oper.split(" "); switch (operArray[0]) { case "Pop": Pop(); break; case "Insert": Insert(operArray[1]); break; default: break; } } } public void Pop(){ if (fus.size() == 0) { System.out.println("empty"); }else { Collections.sort(fus,new Comparator<Fu>() { @Override public int compare(Fu o1, Fu o2) { if (o1.getMoValue() < o2.getMoValue()){ return 1; }else if (o1.getMoValue() > o2.getMoValue()) { return -1; }else { if (o1.xu > o2.xu) { return 1; }else { return -1; } } } }); System.out.println(fus.get(0).shi + "+i" + fus.get(0).xu); fus.remove(0); System.out.println("SIZE = " + fus.size()); } } public void Insert(String data){ String[] array = data.split("\\+"); fus.add(new Fu(Integer.parseInt(array[0]),getRealXu(array[1]))); System.out.println("SIZE = " + fus.size()); } public int getRealXu(String str){ return Integer.parseInt(str.substring(1)); }; class Fu{ int shi; int xu; public int getMoValue(){ return (int) (Math.pow(shi, 2) + Math.pow(xu, 2)); } public Fu() { } public Fu(int shi, int xu) { super(); this.shi = shi; this.xu = xu; } } }
Binary sort tree
Topic link
Analysis of ideas
AC code
import java.util.Scanner; public class Main { static Scanner scanner; TreeNode root; public static void main(String[] args) { scanner = new Scanner(System.in); while (scanner.hasNext()) { Main binarySortingTree = new Main(); binarySortingTree.handle(); } } public void handle() { int num = scanner.nextInt(); int value = scanner.nextInt(); root = new TreeNode(value); for (int i = 1; i < num; i++) { int temp = scanner.nextInt(); BSTInsert(root,temp); } preoder(root); System.out.println(); inorder(root); System.out.println(); postOrder(root); System.out.println(); } public void preoder(TreeNode p) { if (p != null) { System.out.print(p.value + " "); preoder(p.left); preoder(p.right); } } public void inorder(TreeNode p){ if (p != null) { inorder(p.left); System.out.print(p.value + " "); inorder(p.right); } } public void postOrder(TreeNode p){ if (p != null) { postOrder(p.left); postOrder(p.right); System.out.print(p.value + " "); } } public void BSTInsert(TreeNode bt, int value){ if (value != bt.value) { if (value > bt.value) { if (bt.right == null) { bt.right = new TreeNode(value); }else{ BSTInsert(bt.right, value); } }else if (value < bt.value) { if (bt.left == null) { bt.left = new TreeNode(value); }else{ BSTInsert(bt.left, value); } } } } class TreeNode{ int value; TreeNode left; TreeNode right; public TreeNode(int value) { this.value = value; this.left = null; this.right = null; } public TreeNode() { } } }
Find the Decimal
Topic link
Analysis of ideas
AC code
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Scanner; public class Main { public static void main(String[] args) { Main minPair = new Main(); minPair.handle(); } public void handle(){ Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); List<Pair> list = new ArrayList<>(); for (int i = 0; i < n; i++) { Pair temp = new Pair(scanner.nextInt(), scanner.nextInt()); list.add(temp); } Collections.sort(list,new Comparator<Pair>() { @Override public int compare(Pair o1, Pair o2) { if (o1.getKey() > o2.getKey()) { return 1; }else if (o1.getKey() < o2.getKey()) { return -1; }else { return o1.getValue().compareTo(o2.getValue()); } } }); System.out.println(list.get(0).getKey() + " " + list.get(0).getValue()); } class Pair{ int x; int y; Pair(int x, int y) { super(); this.x = x; this.y = y; } public Integer getKey(){ return x; } public Integer getValue(){ return y; } @Override public String toString() { //Method stub automatically generated by TODO return "x=" + x + "y=" + y; } } }
lookup
Topic link
AC code
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int n = scanner.nextInt(); List<Integer> list = new ArrayList<>(); for (int i = 0; i < n; i++) { list.add(scanner.nextInt()); } int m = scanner.nextInt(); for (int i = 0; i < m; i++) { int temp = scanner.nextInt(); if (list.contains(temp)) { System.out.println("YES"); }else { System.out.println("NO"); } } } } }