天干地支import java.util.Scanner; public class Main { public static void main(String[] args) { System.out.println(2026 is bing wu year.); } }普及赛发奖import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner innew Scanner(System.in); int a1in.nextInt(); int a2in.nextInt(); int a3in.nextInt(); int numin.nextInt(); System.out.println(num); if (numa1){ System.out.println(yi deng jiang); }else if (numa2){ System.out.println(er deng jiang); }else if (numa3){ System.out.println(san deng jiang); }else { System.out.println(mei jiang T_T); } } }学校评级分import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner innew Scanner(System.in); int sin.nextInt(); System.out.println(s); int nin.nextInt(); for (int i0;in;i){ int din.nextInt(); sd; } System.out.println(s); } }走路打卡import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner innew Scanner(System.in); int nin.nextInt(); int sin.nextInt(); int count0; int max-1; String star; for (int i0;in;i){ String namein.next(); int numin.nextInt(); if (nums){ count; } if (nummax){ maxnum; starname; } } System.out.println(count); System.out.println(star); } }九漏鱼主体思路首先除去数字的前导零便于后续判断通过除去前导零后剩余数字的位数即可判断“九漏鱼”判定法得到的较大的数即位数多的大如果位数相同判断除去前导零后剩余数字的大小即可这里需要注意0.001 0.1这种情况应该输出0.1 0.1所以需要进行特判import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner in new Scanner(System.in); int n in.nextInt(); in.nextLine(); for (int i 0; i n; i) { String numsin.nextLine(); String num[]nums.split( ); String x11 num[0]; String x1removeLeadingZeros(x11); String x22 num[1]; String x2removeLeadingZeros(x22); if (x1.length()x2.length()){ System.out.print(x11 ); }else if (x1.length()x2.length()){ System.out.print(x22 ); }else { if (x1.equals(x2)){ System.out.print((x11.length()x22.length()?x11:x22) ); }else { System.out.print((x1.compareTo(x2) 0 ? x11 : x22) ); } } System.out.println(x1.compareTo(x2)0?x11:x22); } } public static String removeLeadingZeros(String s) { int startIndex 2; // 找到第一个非0字符的位置 while (startIndex s.length() s.charAt(startIndex) 0) { startIndex; } return s.substring(startIndex); } }斩杀线首先求出每个月所需的最少收入Xi再选择最大的Xi就是斩杀线。import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner innew Scanner(System.in); int nin.nextInt(); int min0;//斩杀线 for (int i0;in;i){ int min.nextInt(); int val[]new int[m]; for (int j0;jm;j){ val[j]in.nextInt(); } int numin.nextInt(); Arrays.sort(val);//排序选择最便宜的 int sum0; for (int j0;jnum;j){ sumval[j]; } if (summin){//更新斩杀线 minsum; } } System.out.println(min); } }迎新字符串熟悉indexOf、replaceFirst和insert的用法第三种操作要在StringBuilder上操作避免索引混乱import java.util.Scanner; public class Main{ public static void main(String args[]){ Scanner sc new Scanner(System.in); int n sc.nextInt(); sc.nextLine(); // 消耗换行符 String s sc.nextLine(); for(int i 1; i n; i){ int a sc.nextInt(); if(a 1){ String s1 sc.next(); int pos s.indexOf(s1); System.out.println(pos); } else if(a 2){ String s2 sc.next(); String s3 sc.next(); s s.replaceFirst(s2, s3);//替换第一次出现的子串 System.out.println(s); } else if(a 3){ String c1Str sc.next(); String c2Str sc.next(); String s4 sc.next(); char c1 c1Str.charAt(0); char c2 c2Str.charAt(0); // 在StringBuilder上操作避免索引混乱 StringBuilder sb new StringBuilder(s); int j 1; while (j sb.length()) { if (sb.charAt(j-1) c1 sb.charAt(j) c2) { sb.insert(j, s4);//在j处插入s4 // 跳过刚插入的字符避免重复处理 j s4.length(); } j; } s sb.toString(); System.out.println(s); } } }60年前的算法这道题最后一个案例显示超时有大佬指导一下吗我真没招了import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { // BufferedReader处理1e5数据更快 BufferedReader br new BufferedReader(new InputStreamReader(System.in)); int n Integer.parseInt(br.readLine()); // 读取并分割数组 StringTokenizer st new StringTokenizer(br.readLine()); int[] arr new int[n]; for (int i 0; i n; i) { arr[i] Integer.parseInt(st.nextToken()); } int maxSize 0; // 记录栈的最大深度 int[] stack new int[n]; // 模拟栈 int[] firstMaxLayout new int[n]; // 存储第一次达到最大时的布局 int top 0; // 栈顶指针 for (int x : arr) { // 算法核心弹出所有比当前值小的栈顶元素 while (top 0 x stack[top - 1]) { top--; // 直接移动指针无需清零 } // 压入当前元素 stack[top] x; // 仅当首次突破最大值时才复制 if (top maxSize) { maxSize top; // 复制当前栈的前 maxSize 个元素 System.arraycopy(stack, 0, firstMaxLayout, 0, maxSize); } } // 输出结果 System.out.println(maxSize); // 按要求从栈顶到栈底输出即数组逆序 for (int i maxSize - 1; i 0; i--) { System.out.print(firstMaxLayout[i]); if (i 0) System.out.print( ); } } }