题解:P11043 [蓝桥杯 2024 省 Java B] 分布式队列
题目传送门
由于全程与存入数字都无关,所以可以只记录每个节点的下标。
add element:节点
sync follower_id:节点
query:查询目前所有下标有哪些数是每个节点都有的即可。
import java.util.Scanner;
public class Main {
static int[] now = new int[2007];
static int cnt = 0;
static int[] p = new int[20];
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
String op;
while (scanner.hasNext()) {
op = scanner.next();
if (op.equals("query")) {
int ans = 0;
for (int i = 1; i <= cnt; ++i) {
if (now[i] == n) ans++;
}
System.out.println(ans);
} else if (op.equals("add")) {
int x = scanner.nextInt();
now[++cnt]++;
} else if (op.equals("sync")) {
int x = scanner.nextInt();
now[++p[x+1]]++;
}
}scanner.close();
}
}