第一题,奇偶问题
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
int[] a = new int[n];
int[] b = new int[n];
for (int i = 0; i < n; i++)
a[i] = in.nextInt();
for (int i = 0; i < m; i++)
b[i] = in.nextInt();
int r = 0;
int ax = 0, ay = 0, bx = 0, by = 0;
for (int i = 0; i < n; i++) {
if (a[i] % 2 == 0)
ax++;
if (a[i] % 2 == 1)
ay++;
}
for (int i = 0; i < m; i++) {
if (b[i] % 2 == 0)
bx++;
if (b[i] % 2 == 1)
by++;
}
r = Math.min(ax, by) + Math.min(ay, bx);
System.out.println(r);
}
}
第二题,用户排队满意度问题
import java.util.*;
public class Main {
static int res = Integer.MAX_VALUE, n = 0;
static int[][] bt;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
n = in.nextInt();
int[][] arr = new int[n][2];
for (int i = 0; i < n; i++) {
arr[i][0] = in.nextInt();
arr[i][1] = in.nextInt();
}
bt = arr;
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = i + 1;
}
perm(a, 0, a.length - 1);
System.out.println(res);
}
static void perm(int[] buf, int start, int end) {
if (start == end) {
int t = 0;
for (int i = 0; i <= end; i++) {
t += bt[i][0] * (buf[i] - 1) + bt[i][1] * (n - buf[i]);
}
if (t < res)
res = t;
} else {
for (int i = start; i <= end; i++) {
int temp = buf[start];
buf[start] = buf[i];
buf[i] = temp;
// 后续元素递归全排列
perm(buf, start + 1, end);
// 将交换后的数组还原
temp = buf[start];
buf[start] = buf[i];
buf[i] = temp;
}
}
}
}
第三题,凉了
第四题,期末考试状态最好时间段
import java.math.BigInteger;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = in.nextInt();
}
BigInteger r = BigInteger.ZERO;
int min = 0, s = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i; j++) {
min = Integer.MAX_VALUE;
s = 0;
for (int k = j; k < j + i + 1; k++) {
s += arr[k];
if (arr[k] < min)
min = arr[k];
}
BigInteger t = new BigInteger(String.valueOf(min)).multiply(new BigInteger(String.valueOf(s)));
if (t.compareTo(r)>0)
r = t;
}
}
System.out.println(r);
}
}
第五题,摆放花问题
import java.util.*;
public class Main {
static int mod = 1000000007;
static int k = 0;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
k = in.nextInt();
int[] a = new int[n];
int[] b = new int[n];
for (int i = 0; i < n; i++) {
a[i] = in.nextInt();
b[i] = in.nextInt();
}
for (int i = 0; i < n; i++) {
System.out.println(f(a[i], b[i]));
}
}
static int f(int t, int n) {
int s = 0;
int[] a = new int[n + 1];
a[0] = 1;
a[1] = 1;
for (int i = 2; i <= n; i++) {
a[i] = a[i - 1] + a[i - k];
}
for (int i = t; i <= n; i++) {
s += a[i] % mod;
}
return s % mod;
}
}
#腾讯##笔试题目##Java工程师#