public class Main {
public static boolean check(char[] ch) {
for (char c : ch) {
if (c >= '0' && c <= '9')
return false;
}
return true;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int x = 2022;
while (true) {
String hexString = Integer.toHexString(x);
char[] ch = hexString.toCharArray();
if (check(ch)) {
System.out.println(x);
break;
}
x++;
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
int w = scanner.nextInt();
int n = scanner.nextInt();
int ans = (w + n % 7) % 7;
if (ans == 0)
System.out.println(7);
else
System.out.println(ans);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class Main {
private static BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));
private static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
public static boolean[][] st = new boolean[105][105];
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String[] lineStrings1 = bin.readLine().split(" ");
int n = Integer.parseInt(lineStrings1[0]);
int m = Integer.parseInt(lineStrings1[1]);
int t = Integer.parseInt(bin.readLine());
while (t-- > 0) {
String[] tmpStrings = bin.readLine().split(" ");
int r1 = Integer.parseInt(tmpStrings[0]) - 1;
int c1 = Integer.parseInt(tmpStrings[1]) - 1;
int r2 = Integer.parseInt(tmpStrings[2]) - 1;
int c2 = Integer.parseInt(tmpStrings[3]) - 1;
for (int i = r1; i <= r2; i++) { // clean
for (int j = c1; j <= c2; j++) {
st[i][j] = true;
}
}
}
int ans = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (!st[i][j])
ans++;
}
}
out.print(ans);
out.flush();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class Main {
private static BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));
private static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
public static boolean[][] st = new boolean[105][105];
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String[] lineStrings = bin.readLine().split(" ");
int W = Integer.parseInt(lineStrings[0]);
int H = Integer.parseInt(lineStrings[1]);
int n = Integer.parseInt(lineStrings[2]);
int R = Integer.parseInt(lineStrings[3]);
while (n-- > 0) {
String[] tmpStrings = bin.readLine().split(" ");
int x = Integer.parseInt(tmpStrings[0]);
int y = Integer.parseInt(tmpStrings[1]);
for (int i = 0; i <= W; i++) {
for (int j = 0; j <= H; j++) {
if (Math.sqrt((i - x) * (i - x) + (j - y) * (j - y)) <= R)
st[i][j] = true;
}
}
}
int ans = 0;
for (int i = 0; i <= W; i++) {
for (int j = 0; j <= H; j++) {
if (st[i][j])
ans++;
}
}
out.print(ans);
out.flush();
}
}
🧡🧡t8_附近最小🧡🧡
问题描述
小蓝有一个序列 a[1] a[2] a[3] ... a[n]。
给定一个正整数 k ,请问对于每一个 1到 n 之间的序号 i,a[i-k], a[i-k+1], ... a[i+k] 这 2k+1 个数中的最小值是多少?
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
public class Main {
private static StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
private static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
private static int ini() throws IOException {
st.nextToken();
return (int) st.nval;
}
public static class Node {
int l, r;
int minv;
public Node(int l, int r, int minv) {
this.l = l;
this.r = r;
this.minv = minv;
}
}
public static final int N = 1000010;
public static int n, k;
public static Node[] tr = new Node[N * 4];
public static int[] arr = new int[N];
public static void pushup(int u) {
tr[u].minv = Math.min(tr[u * 2].minv, tr[u * 2 + 1].minv);
}
public static void build(int u, int l, int r) {
if (l == r) {
tr[u] = new Node(l, r, arr[l]);
return;
}
tr[u] = new Node(l, r, Integer.MAX_VALUE);
int mid = l + r >> 1;
build(u * 2, l, mid);
build(u * 2 + 1, mid + 1, r);
pushup(u);
}
public static int query(int u, int left, int right) {
if (tr[u].l >= left && tr[u].r <= right) {
return tr[u].minv;
}
int mid = tr[u].l + tr[u].r >> 1;
int tmp = Integer.MAX_VALUE;
if (left <= mid)
tmp = Math.min(tmp, query(u * 2, left, right));
if (right > mid)
tmp = Math.min(tmp, query(u * 2 + 1, left, right));
return tmp;
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
n = ini();
for (int i = 1; i <= n; i++)
arr[i] = ini();
k = ini();
build(1, 1, n);
for (int i = 1; i <= n; i++) {
int left = i - k;
int right = i + k;
if (left < 1)
left = 1;
if (right > n)
right = n;
out.print(query(1, left, right) + " ");
}
out.flush();
}
}
public class Main {
public static int[] mon_day = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
public static boolean check(long y, long m, long d) {
mon_day[2] = (y % 4 == 0 && y % 100 != 0) || y % 400 == 0 ? 29 : 28;
if (!(m >= 1 && m <= 12))
return false;
if (!(d >= 1 && d <= mon_day[(int) m]))
return false;
return true;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
long ans = 0;
// for (long date = 20000101; date <= 20000000101L; date++) {
// long y = date / 10000;
// long m = date % 10000 / 100;
// long d = date % 100;
// if (check(y, m, d)) {
// if (y % m == 0 && y % d == 0)
// ans++;
// }
// }
// System.out.println(ans);
System.out.println(35813063);
}
}
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int ans = 0;
for (int i = 1; i <= 10000; i++) {
String s = Integer.toBinaryString(i);
int cnt = 0;
for (int j = 0; j < s.length(); j++) {
if (s.charAt(j) == '1')
cnt++;
}
if (cnt == 3)
ans++;
// System.out.println(ans + " " + i);
if (ans == 23) {
System.out.println(i);
break;
}
}
}
}
import java.util.Scanner;
public class Main {
public static final int N = 1000;
public static int n;
public static boolean[] killed = new boolean[N];
public static int[][] blood = new int[N][N];
public static int ans = Integer.MIN_VALUE;
public static void dfs(int last, int now, int deep) {
ans = Math.max(ans, deep);
for (int j = 1; j <= n; j++) {
if (killed[j])
continue;
if (blood[now][j] < blood[last][now])
continue;
killed[j] = true;
dfs(now, j, deep + 1);
killed[j] = false;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
blood[i][j] = sc.nextInt();
}
}
killed[1] = true;
dfs(1, 1, 1);
System.out.println(ans);
}
}
🧡🧡t14_删字母🧡🧡
问题描述
给定一个由大写字母组成的长度为 n 的字符串,请在字符串中删除 m 个字符,使得剩下的字符串的字典序最小。 输入 :
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static List<Character> list = new ArrayList<>();
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
String s = sc.next();
for (int i = 0; i < s.length(); i++) {
while (!list.isEmpty() && m > 0 && s.charAt(i) < list.get(list.size() - 1)) {
m--;
list.remove(list.size() - 1);
}
list.add(s.charAt(i));
// System.out.println(list.toString());
}
for (char c : list) {
System.out.print(c);
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int minv = Integer.MAX_VALUE;
int res = 0;
for (int i = 1; i <= 8; i++) {
for (int j = 1; j <= 8; j++) {
int sum = 0;
int x = sc.nextInt();
int tmp = x;
while (tmp > 0) {
sum += tmp % 10;
tmp /= 10;
}
if (minv > sum) {
minv = sum;
res = x;
}
}
}
System.out.println(res);
}
}
import java.util.Scanner;
public class Main {
public static int[] arr = new int[10]; // 0-9
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
for (int i = 0; i < s.length(); i++) {
int x = (int) s.charAt(i) - '0';
arr[x]++;
}
for (int num : arr) {
System.out.print(num + " ");
}
}
}
🧡🧡t17_相近分解🧡🧡
问题描述
如果一个正整数 n 可以表示为三个整数的乘积,且这三个数的差都不超过 2 ,则称 n 可以进行相近分解。即 n可以写为 abc 的形式,而且 |a-b|<=2,|b-c|<=2,|a-c|<=2。请问第 23 小的可以进行相近分解的正整数是多少?
public class Main {
public static int cnt = 0;
public static boolean check(int n) {
for (int a = 1; a <= 30; a++) {
for (int b = a; b <= 30; b++) {
for (int c = b; c <= 30; c++) {
if (a * b * c == n) {
if (Math.abs(a - b) <= 2 && Math.abs(a - c) <= 2 && Math.abs(b - c) <= 2) {
// System.out.println(a + " " + b + " " + c);
return true;
}
}
}
}
}
return false;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int cnt = 0;
// 112 121?
for (int i = 1; i <= 10000; i++) {
if (check(i))
cnt++;
if (cnt == 23) {
System.out.println(i); // 120
break;
}
}
}
}
如果最终是低档,输出小写英文字符串 low;如果最终是中档,输出小写英文字符串 mid;如果最终是高档,输出小写英文字符串 high 样例:
复制代码
10
mid
思路
又是关于取模的数学问题。easy
代码
java复制代码
import java.util.Scanner;
public class Main {
public static String[] level = { "low", "mid", "high" };
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(level[n % 3]);
}
}
import java.util.Scanner;
public class Main {
public static int[] arr = new int[1010];
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 1; i <= n; i++) {
arr[i] = sc.nextInt();
}
boolean flag = true;
int max_ridge = -1;
for (int i = 2; i <= n - 1; i++) {
if (arr[i] < arr[i - 1] && arr[i] < arr[i + 1]) {
max_ridge = Math.max(max_ridge, (arr[i - 1] - arr[i]) * (arr[i + 1] - arr[i]));
flag = false;
}
}
if (flag)
System.out.println(0);
else
System.out.println(max_ridge);
}
}