1210. 连号区间数 - AcWing题库
import java.util.*;public class Main{static int N = 10010, INF = 0x3f3f3f3f, n;static int[] a = new int[N];public static void main(String[] args){Scanner sc = new Scanner(System.in);n = sc.nextInt();for(int i = 0; i < n; i ++){a[i] = sc.nextInt();}int res = 0;for(int i = 0; i < n; i ++){//枚举左端点int Max = -INF;int Min = INF;for(int j = i; j < n; j ++){//枚举右端点Max = Math.max(Max, a[j]);Min = Math.min(Min, a[j]);if(Max - Min == j - i) res ++;}}System.out.print(res);}
}
1236. 递增三元组 - AcWing题库
1245. 特别数的和 - AcWing题库
import java.util.*;public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();int res = 0;for(int i = 1; i <= n; i ++){int t = i;while(t > 0){int x = t % 10;t /= 10;if(x == 0 || x == 1 || x == 2 || x == 9){res += i;break;}}}System.out.print(res);}
}
1204. 错误票据 - AcWing题库
import java.util.*;
import java.io.*;public class Main{static int N = 1000010;static boolean[] st = new boolean[N];static int u, v;public static void main(String[] args)throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(br.readLine());while(n -- > 0){String[] str = br.readLine().split(" ");for(int i = 0; i < str.length; i ++){int x = Integer.parseInt(str[i]);if(st[x] == true) v = x;st[x] = true;}}int j = 0;while(!st[j]) j ++;for(int i = j; i <= N; i ++){if(!st[i]){u = i;break;}}System.out.print(u + " " + v);}
}
466. 回文日期 - AcWing题库
import java.util.*;public class Main{static int N = 10000;static int[] a = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};public static boolean check(int year, int month, int day){if(month > 12 || day < 0 || month < 0) return false;if(month != 2){if(day > a[month]) return false;}if(month == 2){if(year % 100 != 0 && year % 4 == 0 || year % 400 == 0) return day <= a[month] + 1;else return day <= a[month];}return true;}public static void main(String[] args){Scanner sc = new Scanner(System.in);int date1 = sc.nextInt();int date2 = sc.nextInt();int res = 0;for(int i = 1; i < N; i ++){int x = i;int t = i;for(int j = 0; j < 4; j ++){x = x * 10 + t % 10;t = t / 10;}int year = x / 10000;int month = x % 10000 / 100;int day = x % 100;if(x >= date1 && x <= date2 && check(year, month, day)) res ++;}System.out.print(res);}
}
787. 归并排序 - AcWing题库
import java.util.*;public class Main{static int N = 100010;static int[] a = new int[N];public static void mergeSort(int l, int r){if(l >= r) return;int mid = l + r >> 1;mergeSort(l, mid);mergeSort(mid + 1, r);int[] ans = new int[r - l + 1];int k = 0, i = l, j = mid + 1;while(i <= mid && j <= r){if(a[i] < a[j]) ans[k ++] = a[i ++];else ans[k ++] = a[j ++];}while(i <= mid) ans[k ++] = a[i ++];while(j <= r) ans[k ++] = a[j ++];for(j = 0, i = l; i <= r; i ++, j ++){a[i] = ans[j];}}public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();for(int i = 0; i < n; i ++){a[i] = sc.nextInt();}mergeSort(0, n - 1);for(int i = 0; i < n; i ++){System.out.print(a[i] + " ");}}
}
1219. 移动距离 - AcWing题库
import java.util.*;public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);int w = sc.nextInt();int m = sc.nextInt();int n = sc.nextInt();int x1 = 0, x2 = 0, y1 = 0, y2 = 0;if(m % w == 0) x1 = m / w;else x1 = m / w + 1;if(n % w == 0) x2 = n / w;else x2 = n / w + 1;if(x1 % 2 == 0){y1 = w - m % w + 1;if(m % w == 0) y1 = 1;}else{y1 = m % w;if(m % w == 0) y1 = w;}if(x2 % 2 == 0){y2 = w - n % w + 1;if(n % w == 0) y2 = 1;}else{y2 = n % w;if(n % w == 0) y2 = w;}System.out.print(Math.abs(x1 - x2) + Math.abs(y1 - y2));}
}
1229. 日期问题 - AcWing题库
import java.util.*;public class Main{static int[] a = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};public static boolean check(int year, int month, int day){if(month <= 0 || month > 12 || day <= 0) return false;if(month != 2){if(day > a[month]) return false;}if(month == 2){if(year % 100 != 0 && year % 4 == 0 || year % 400 == 0) return day <= a[month] + 1;else return day <= a[month];}return true;}public static void main(String[] args){Scanner sc = new Scanner(System.in);String[] s = sc.next().split("/");int a = Integer.parseInt(s[0]);int b = Integer.parseInt(s[1]);int c = Integer.parseInt(s[2]);for(int i = 19600101; i <= 20591231; i ++){int year = i / 10000;int month = i % 10000 / 100;int day = i % 100;if(check(year, month, day)){if(((year % 100 == a) && month == b && day == c) || ((year % 100 == c) && month == a && day == b) || ((year % 100 == c) && month == b && day == a)){System.out.printf("%d-%02d-%02d\n", year, month, day);} }}}
}
788. 逆序对的数量 - AcWing题库
import java.util.*;public class Main{static int N = 100010;static int[] a = new int[N];static long buff;public static long mergeSort(int l, int r){if(l >= r) return 0;int mid = l + r >> 1;buff = mergeSort(l, mid) + mergeSort(mid + 1, r);int[] res = new int[r - l + 1];int k = 0, i = l, j = mid + 1;while(i <= mid && j <= r){if(a[i] <= a[j]) res[k ++] = a[i ++];//这里必须是小于等于else{res[k ++] = a[j ++];buff += mid - i + 1;}}while(i <= mid) res[k ++] = a[i ++];while(j <= r) res[k ++] = a[j ++];for(j = 0, i = l; i <= r; i ++, j ++){a[i] = res[j];}return buff;}public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();for(int i = 0; i < n; i ++){a[i] = sc.nextInt();}System.out.print(mergeSort(0, n - 1));}
}
1241. 外卖店优先级 - AcWing题库