2025年9月

题目

上海市2025CSP-J十连测Round 6.pdf

大感

难度感觉很难,我只有69分,全班排No 3的状态

错题大纲

一 单项选择(错4题)

T4

如果对一个已经升序的数组进行排序,下列算法中可能花费时间反而比乱序数组多的是( )

A.堆排序
B.插入排序
C.冒泡排序
D.快速排序

先来一张统计表

排序算法平均时间复杂度最优时间复杂度最坏时间复杂度备注
A. 堆排序$O(n log n)$$O(n log n)$$O(n log n)$不稳定排序
B. 插入排序$O(n²)$$O(n)$$O(n²)$稳定排序,对小数据集高效
C. 冒泡排序$O(n²)$$O(n)$$O(n²)$稳定排序,效率较低
D. 快速排序$O(n log n)$$O(n log n)$$O(n²)$不稳定排序,平均性能最好

答案为D

原因如下:快速排序依赖于基准,如果数组已经有序,且选择第一个或最后一个元素作为基准(常见实现方式),则每次划分都会极度不平衡(因为基准是当前子数组的最小或最大值),导致递归深度达到最大($O(n)$),并且每次划分只能减少一个元素。因此,最坏时间复杂度为​$O(n²)​$,比乱序数组的平均情况($O(n log n)$)要慢得多

例如:
初始数组:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

第一次排序(以 1 为基准):
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

对右半部分 [2, 3, 4, 5, 6, 7, 8, 9, 10] 排序(以 2 为基准):
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

对右半部分 [3, 4, 5, 6, 7, 8, 9, 10] 排序(以 3 为基准):
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

对右半部分 [4, 5, 6, 7, 8, 9, 10] 排序(以 4 为基准):
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

对右半部分 [5, 6, 7, 8, 9, 10] 排序(以 5 为基准):
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

对右半部分 [6, 7, 8, 9, 10] 排序(以 6 为基准):
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

对右半部分 [7, 8, 9, 10] 排序(以 7 为基准):
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

对右半部分 [8, 9, 10] 排序(以 8 为基准):
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

对右半部分 [9, 10] 排序(以 9 为基准):
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

对右半部分 [10] 排序(只有一个元素,无需排序):
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

代码实现:

#include <iostream>
using namespace std;

// 划分函数,返回基准位置
int partition(int arr[], int low, int high) {
    int pivot = arr[low];  // 选择第一个元素为基准
    int i = low, j = high;
    while (i < j) {
        while (i < j && arr[j] >= pivot) j--; // 从右找小于基准的
        while (i < j && arr[i] <= pivot) i++; // 从左找大于基准的
        if (i < j) swap(arr[i], arr[j]);
    }
    swap(arr[low], arr[i]); // 将基准放到正确位置
    return i;
}

// 快速排序递归函数
void quickSort(int arr[], int low, int high) {
    if (low < high) {
        int pi = partition(arr, low, high); // 划分
        quickSort(arr, low, pi - 1);  // 排序左半
        quickSort(arr, pi + 1, high); // 排序右半
    }
}

// 打印数组
void printArray(int arr[], int n) {
    for (int i = 0; i < n; i++)
        cout << arr[i] << " ";
    cout << endl;
}

int main() {
    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 待排序
    int n = sizeof(arr) / sizeof(arr[0]);
    
    printArray(arr, n);
    
    quickSort(arr, 0, n - 1);
    
    printArray(arr, n);
    
    return 0;
}

T6

题目:设一个栈与一个队列的初始状态均为空。元素 1、2、3、4、5、6依次进入栈,且每个元素出栈后即进入队列,若出队的顺序为2、4、3、6、5、1,则栈的容量至少应该为( )。

A 2
B 3
C 4
D 5

答案为B,模拟过程如下:

1入栈,容量为1
2入栈,容量为2
2出栈,容量为1
3入栈,容量为2
4入栈,容量为3
4出栈,容量为2
3出栈,容量为1
5入栈,容量为2
6入栈,容量为3
6出栈,容量为2
5出栈,容量为1
1出栈,容量为0

期间最大容量为3,所以栈容量至少为3

T7

题目:整型数组a中有n个元素,能计算a中有多少个数字大于lower且小于upper的函数,应该将下划线依次替换为( )

int solve(int a[], int n, int lower, int upper)
{
    std::sort(a, a + n);
    auto begin = std::_____(a, a + n, lower);
    auto end = std::_____(a, a + n, upper);
    return end - begin;
}
A lower_bound、lower_bound
B lower_bound、upper_bound
C upper_bound、lower_bound
D upper_bound、upper_bound

答案为B

原因:

先说好,lb和up是C++的STL容器

  • lower_bound:返回指向第一个大于或等于目标值的元素的迭代器
  • upper_bound:返回指向第一个大于目标值的元素的迭代器

T11

题目:设有一个含有13个元素的哈希表(0 12),哈希函数是H(key)=key%13。用线性探查法解决冲突,则对于序列{2,8,31,20,19,18,53,27},18应放在下标为( )的位置

A 0
B 4
C 5
D 9

答案为D
核心规则回顾

  1. 哈希函数:H(key) = key % 13,计算元素的初始哈希位置。
  2. 线性探查法:若初始位置已被占用,依次检查下一个位置(下标+1,超过12则循环到0),直到找到空位置。
  3. 哈希表下标范围:0~12,共13个位置。
    逐元素计算存储位置(重点跟踪18)

1. 元素2

  • 初始哈希位置:H(2) = 2 % 13 = 2
  • 位置2为空,存储2 → 哈希表:[空, 空, 2, 空, 空, 空, 空, 空, 空, 空, 空, 空, 空]

2. 元素8

  • 初始哈希位置:H(8) = 8 % 13 = 8
  • 位置8为空,存储8 → 哈希表:[空, 空, 2, 空, 空, 空, 空, 空, 8, 空, 空, 空, 空]

3. 元素31

  • 初始哈希位置:H(31) = 31 % 13 = 5(13×2=26,31-26=5)
  • 位置5为空,存储31 → 哈希表:[空, 空, 2, 空, 空, 31, 空, 空, 8, 空, 空, 空, 空]

4. 元素20

  • 初始哈希位置:H(20) = 20 % 13 = 7(13×1=13,20-13=7)
  • 位置7为空,存储20 → 哈希表:[空, 空, 2, 空, 空, 31, 空, 20, 8, 空, 空, 空, 空]

5. 元素19

  • 初始哈希位置:H(19) = 19 % 13 = 6(13×1=13,19-13=6)
  • 位置6为空,存储19 → 哈希表:[空, 空, 2, 空, 空, 31, 19, 20, 8, 空, 空, 空, 空]

6. 元素18(目标元素)

  • 初始哈希位置:H(18) = 18 % 13 = 5(13×1=13,18-13=5)
  • 冲突:位置5已存储31,按线性探查检查下一个位置6;
  • 再次冲突:位置6已存储19,继续检查下一个位置7;
  • 再次冲突:位置7已存储20,继续检查下一个位置8;
  • 再次冲突:位置8已存储8,继续检查下一个位置9;
  • 位置9为空,存储18 → 18的最终下标为9。

(后续元素验证,不影响18的结果)

  • 元素53:H(53)=53%13=1(13×4=52,53-52=1),位置1为空,存储53。
  • 元素27:H(27)=27%13=1,位置1已存53,探查位置2(存2)→ 位置3(空),存储27。

结论

18应放在下标为 9 的位置,答案选 D。

二 阅读程序

第一大题

int solve1(int n)
{
    int s = 0;
    for (int i = 1; i <= n; ++i) {
        int f = 1;
        for (int j = i; j >= 1; --j) {
            f = f * j;
        }
        s = s + f;
    }
    return s;
}

int solve2(int n)
{
    int s = 0;
    for (int i = n; i >= 1; --i)
    {
        s = s + 1;
        s = s * i;
    }
    return s;
}

第二大题

bool move(int b[], int n)
{
    for (int i = 0; i < n; ++i) {
        if (b[i] == 1) {
            b[i] = 0;
        } else {
            b[i] = 1;
            return true;
        }
    }
    return false;
}

void print(int n)
{
    int b[n];
    for (int i = 0; i < n; ++i) b[i] = 0;
    do {
        for (int i = 0; i < n; ++i) std::cout << b[i];
        std::cout << "\n";
    } while (move(b, n));
}

int count(int n)
{
    int b[n];
    for (int i = 0; i < n; ++i) b[i] = 0;
    int c = 0;
    do {
        c++;
    } while (move(b, n));
    return c;
}

T22

题目:print输出的0与1必然一样多

什么是必然?
必定这样。必然是指客观事物联系和发展的合乎规律的、确定不移的趋势,是在一定条件下的不可避免性和确定性。

所以,√

模拟即可

T27

题目:以下说法错误的是( )

A.print(n)前一半输出全是偶数,后一半输出全是奇数
B.若将print(n)输出的每行内容看成一个数字,则他们是依次递增的
C.print(n)输出的每一行内容都是不同的
D.print(n)输出的每一列内容都是不同的

选B

不是依次递增

是有位数为int n的二进制,但是倒着的,也就是说,如果调用print(2),则模拟过程如下:

0 0
1 0
0 1
1 1
0 0

把他旋转一下:

0 0 》0
0 1 》1
1 0 》2
1 1 》3
0 0 》0

所以本题选B

第三大题

struct flat_map {
    struct {
        int key;
        int value;
    } bucket[65536];
    int size = 0;

    struct result {
        int index;
        bool hit;
    };

    result find(int begin, int end, int key) {
        if (begin == end)
            return {begin, false};
        else {
            int mid = begin + (end - begin) / 2;
            if (key < bucket[mid].key)
                return find(begin, mid, key);
            else if (bucket[mid].key < key)
                return find(mid + 1, end, key);
            else
                return {mid, true};
        }
    }

    int get(int key) {
        result p = find(0, size, key);
        if (p.hit)
            return bucket[p.index].value;
        else
            return 0;
    }

    void put(int key, int value) {
        result p = find(0, size, key);
        for (int i = size; i > p.index; --i) {
            bucket[i] = bucket[i - 1];
        }
        size++;
        bucket[p.index].key = key;
        bucket[p.index].value = value;
    }
};

T30

题目:若数组bucket的下标在[b,e)范围内存在键k,find(b,e,k)函数返回的hit为false

答案为×

find 函数通过二分查找,在数组 bucket 的区间 [b, e) 内查找键 k:

  • 如果找到键 k,返回 {索引, true}(hit = true)。
  • 如果没找到键 k,返回 {应该插入的位置, false}(hit = false)。

找到hit后是true,所以说法错误

T32

题目:记$s$表示容器的大小size,调用get(key)的最坏时间复杂度为( )

A $O(s)$
B $O(log s)$
C $O(s log s)$
D $O(s^2)$

根据题意,选B

log 通常指的是以 2 为底的对数(log₂)

T35

题目:若调用put(k,v)时已经存在相同的键k时,以下哪一种处理策略最符合上述代码的逻辑( )

A. 熔断 (Breaker):掷出异常,向系统报告错误
B. 回滚 (Rollback):不做任何修改,撤销put操作
C. 覆盖 (Rewrite):将键所对应的老值覆盖成新值
D. 忽略 (lgnore):对有可能出错的操作置之不理

答案为D,程序没有做特别的判断

三 完善程序

第一大题

给定含有n个顶点的有向完全图(顶点编号为$0$到$n-1$)。顶点$x$到$y$的边的权重为g[x][y]了。
请找出一条不重复经过任何点的路径,从顶点$0$出发到顶点$n-1$结束,路径上所有边的权重的异或值尽可能大。

int n, m;
long long g[MAXN][MAXN];
bool visited[MAXN] = {false};

int dfs(int node, int path) {
    if (____(1)____)
    {
        return ____(2)____;
    }

    int best = 0;
    visited[node] = true;
    for (int next = 0; next < ____(3)____; ++next)
    {
        if (____(4)____)
        {
            best = std::max(best, ____(5)____);
        }
    }
    visited[____(6)____] = ____(7)____;
}

int solve()
{
    return ____(8)____;
}

T40

node为节点,path为id

所以选A

第二大题

$n$个岛屿由$n$座桥连成环。岛的编号为$0$到$n-1$
,第$i$座桥连第$i$号岛屿第$(i+1) mod n$号岛
某旅行团从第$x_1$号岛出发,依次访问的岛编号为$x_2,...,x_m$
请选择拆掉一座桥,使得旅行团的过桥次数达到最小,令solve函数返回这个最小值

int solve(int n, int m, int x[])
{
    int diff[n];

    for (int i = 0; i < n; ++i) diff[i] = 0;
    int base = 0;
    for (int i = 1; i < m; ++i)
    {
        int prev = x[i - 1];
        int next = x[i];
        int begin, end;
        if (prev < next) {
            begin = prev;
            end = next;
        }
        else {
            begin = next;
            end = prev;
        }

        base += ____(1)____;
        int inc = ____(2)____ ;
        diff[____(3)____] += inc;
        diff[____(4)____] -= inc;
        prev = next;
    }
    int best = n * m;
    int sum = 0;
    for (int i = 0; i < n; ++i)
    {
        ____(5)____;
        if (best > sum) best = sum;
    }
    return ____(6)____;
}

T42

联系上下文即可

T44

联系上下文即可

T45

联系上下文即可

完

致谢

题目

上海市2025CSP-J十连测Round 5

大感

难度感觉还好,我这次也是拿到了80分的成绩,试卷打印的时候少了第一道完善程序,所以这份试卷的第一道完善程序作废,不得分

错题大纲

一 单项选择

T6

题目:设某算法的计算时间表示为递推关系式$ T(n)=T(n-1)+n $,$ n $为正整数,$ T(0) = 1$则该算法的时间复杂度为( )

A $ O(logn) $
B $ O(nlogn) $
C $ O(n) $
D $ O(n^2)$

这道题,我当时是模拟了一下,模拟的结果是这样的:

T(5)=T(4)+5
T(4)=T(3)+4
T(3)=T(2)+3
T(2)=T(1)+2
T(1)=0

此时,$n$为5,一共做了5次的$T(n)$,则时间复杂度为$O(n)$

但是错了

我估摸着是答案写错了

然后,我们邀请AI:

image.png

给定递推关系式 (T ( n )=T ( n-1 )+n)且 (T ( 0 )=1) ,我们可以通过展开递推式来求解 (T ( n ))的表达式。 展开递推式:

[
\begin{array}{l} T (n) = T (n - 1) + n \ = [ T (n - 2) + (n - 1) ] + n = T (n - 2) + (n - 1) + n \ = [ T (n - 3) + (n - 2) ] + (n - 1) + n = T (n - 3) + (n - 2) + (n - 1) + n \ \vdots \ = T (0) + 1 + 2 + 3 + \dots + n \ \end{array}
]

已知 T(0)=1,所以:

[
T (n) = 1 + \sum_ {k = 1} ^ {n} k = 1 + \frac {n (n + 1)}{2}
]

因此, (T ( n ) = \frac { n ( n + 1 ) } { 2 } + 1。) 当 (n) 很大时, (T(n)) 的主要项是 (\frac{n^2}{2}) ,所以 (T(n) = \Theta (n^2)) ,即时间复杂度为 (O(n^2)) 故正确答案是D (O(n^2)) 。

说人话,就是模拟的数据太小了,建议增加数据模拟值

T10

题目:具有$n$个顶点,$e$条边的图采用邻接表存储结构,进行DFS和BFS的时间复杂度均为( )

A $O(n+e)$
B $O(ne)$
C $O(e^2)$
D $O(n^2)$

我在考试中选了B,那时候我根本不知道邻接表是啥

现在让我们邀请AI

邻接表
邻接表是图的一种高效存储结构,用于表示顶点间的关联关系,尤其适合稀疏图(边数远少于顶点数平方)。
存储方式分两部分:

  1. 顶点表:用数组或链表存储所有顶点信息,每个顶点元素关联一个指针,指向其邻接边的列表。
  2. 邻接边表:为每个顶点建立一个链表,链表节点存储与该顶点直接相连的“邻接顶点索引”及边的权重(无向图/有向图通用)。比如无向图中顶点A连B,A的邻接表含B,B的邻接表也含A;有向图中A→B仅A的邻接表含B。
    相比邻接矩阵,邻接表节省空间,查询顶点邻接边时效率更高,是图论中常用的存储方式。

继续邀请ai分析题目

答案选A:$O(n+e)$
解析:在邻接表存储结构中,DFS(深度优先搜索)和BFS(广度优先搜索)遍历图时,每个顶点都会被访问一次(时间复杂度$O(n)$),同时每条边也会被检查一次(时间复杂度$O(e)$)。
两种算法的总操作次数是顶点访问次数与边检查次数的总和,因此时间复杂度均为$O(n+e)$,适用于有向图和无向图的情况。

所以,选A,说人话:分别遍历点和边

T15

题目:由数字1,1,2,4,8,8所组成的不同的四位数的个数是( )

A 102
B 120
C 560
D 720

考试中,不知道就选C

答案为A
本题有4种情况,他们分别是无重复数字 $A_4^4$共24种、含2个1(无8重复) $C_2^4 \times A_2^3=6 \times 6=36$、含两个8(无1重复) $C_2^4 \times A_2^3=36$、含两个1和两个8 C_2^4=6,综合为102种

二 阅读程序

第一大题

#include<iostream>
int main()
{
    int n, c;
    std::cin >> n >> c;
    long long sum = 0;
    int pre = 1000000000;
    for (int i = 0; i < n; ++i) {
        int a;
        std::cin >> a;
        if (pre > a) {
            pre = a;
        }
        sum += pre;
        pre += c;
    }
    std::cout << sum << "\n";
}

T16

题目:当输入的a全部相等时,程序输出的结果一定等于$n \times a$

我当时考试中填的是正确

当时也没模拟完整

考试后模拟的样例:

input

5 3
3 3 3 3 3

output

45

事实声明,本题为×

第二大题

bool c[max_size][max_size] = {false};
void draw(int size, int x, int y)
{
    if (size == 1)
    {
        c[x][y] = true;
    }
    else
    {
        int half = size / 2;
        draw(half, x + half, y);
        draw(half, x, y + half);
        draw(half, x + half, y + half);
    }
}
void print(int n)
{
    int length = 1 << n;
    draw(length, 0, 0);
    for (int x = 0; x < length; ++x)
    {
        for (int y = 0; y < length; ++y)
        {
            if (c[x][y])
                std::cout << '*';
            else
                std::cout << '.';
        }
        std::cout << "\n";
    }
}

这个代码怎么不完整

T20

题目:在draw的过程中,左上角的四分之一子区域始终不会被绘制

当时我模拟是模拟到这里了

模拟图.jpg

然后也懒得模拟了

如果按照这样的规律下去,那么左上角四分之一区域是会被绘制的

也不懂

估计是我题目理解问题

T24

题目:print(n)的时间复杂度为( )

A $O(n)$
B $O(2^n)$
C $O(3^n)$
D $O(4^n)$

答案为D,考试我选了B

但是deepseek的观点是选C,所以,我们需要注意:[font color="#FF0000"]内容由 AI 生成,请仔细甄别[/font]

T27

题目:程序输出的图形,是沿( )对称图形

A 对角线
B 水平中轴
C 垂直中轴
D 中心镜像

考试我选择C,因为从上面那张目前模拟的地方,选C确实对于模拟没错

but

为什么错了???

也许是模拟错了吧

其实还有另外一张模拟了一张的草稿纸,但被我当作lese扔进垃圾桶了

第三大题

bool valid = true;
std::vector<int> adj[max_node];
bool instack[max_node] = {false};
bool visited[max_node] = {false};
void dfs(int node)
{
    instack[node] = true;
    visited[node] = true;
    for (auto after : adj[node]) {
        if (!visited[after]) {
            visited[after] = true;
            dfs(after);
        } else if (instack[after]) {
            valid = false;
        }
    }
    instack[node] = false;
}
int main()
{
    int n, m;
    std::cin >> n >> m;
    for (int i = 0; i < m; i++)
    {
        int x, y;
        std::cin >> x >> y;
        adj[x].push_back(y);
    }
    for (int i = 1; i <= n; i++)
    {
        if (!visited[i])
        {
            dfs(i);
        }
    }
    if (valid) {
        std::cout << "Valid\n";
    } else {
        std::cout << "Invalid\n";
    }
}

T34

题目:当输入节点数$n=10^5$,边数$m=2 \times 10^5$时,程序是否能高效运行( )

A 能,$O(n+m)$复杂度
B 不能,$O(nm)$复杂度
C 不能,递归栈溢出
D 取决于图的具体结构

说实话,我考试中都不知道这个代码在干什么,全都是瞎懵的,选择题全队,选择题错了一个,即这个,考试懵了C,因为不知道就选C

让我们的deepseek来分析这道题

???deepseek选C???

小声os:@deepseek: look in my eyes . tell me ? why ? why baby ? why ?

三 完善程序

第一大题

S了
但是让deepseek根据题目写代码

#include <iostream>
#include <vector>
using namespace std;

const int MAX_N = 1005;
const int MAX_M = 1005;

int main() {
    int n, N;
    cin >> n >> N;
    vector<string> P(N);
    for (int i = 0; i < N; ++i) {
        cin >> P[i];
    }
    int Q;
    cin >> Q;

    // 前缀和数组,sum_black[i][j] 表示从(0,0)到(i-1,j-1)的黑格数量
    vector<vector<int>> sum_black(n + 1, vector<int>(n + 1, 0));

    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n; ++j) {
            int pi = (i - 1) % N;
            int pj = (j - 1) % N;
            int black = (P[pi][pj] == 'B') ? 1 : 0;
            sum_black[i][j] = sum_black[i - 1][j] + sum_black[i][j - 1] - sum_black[i - 1][j - 1] + black;
        }
    }

    while (Q--) {
        int A, B, C, D;
        cin >> A >> B >> C >> D;
        // 计算矩形区域内的黑格数量,注意坐标从0开始,转换为前缀和的1-based索引
        int black_count = sum_black[C + 1][D + 1] - sum_black[A][D + 1] - sum_black[C + 1][B] + sum_black[A][B];
        cout << black_count << endl;
    }

    return 0;
}

也不知道对不对

第二大题

#include<iostream>
int len(int n) {
    int length = 0;
    while (n > 0) {
        n /= 10;
        length++;
    }
    return length;
}
void print(int n, char ch) {
    while (n-- > 0) std::cout << ch;
}
int main() {
    int a, b;
    char dummy;
    std::cin >> a >> dummy >> b;
    int p = a;
    int q = b;
    while (a != 0 and b != 0) {
        if (a >= b) a %= b;
        else b %= a;
    }
    int gcd;
    if (____(1)____) gcd = b;
    else gcd = a;
    int i = p / q;
    p %= q;
    p /= gcd;
    q /= gcd;
    if (____(2)____) {
        std::cout << i << "\n";
    } else {
        int i_len = len(i);
        int p_len = len(p);
        int q_len = len(q);
        ____(3)____;
        std::cout << ____(4)____ << "\n";
        if (i != 0) std::cout << i;
        ____(5)____;
        std::cout << "\n";
        ____(6)____;
        std::cout << ____(7)____ << "\n";
    }
}

T44

考试的时候眼瞎了,看错位置了,这个是要输出杠的

完

致谢

如果您看到这篇文章,表示您的 blog 已经安装成功.

$ \text { www.tropical-fish.cn/index.php/archives/start.html } $

$ \frac{2}{3} $

[tabs]
[tab name="1" active="true"]1[/tab]
[tab name="2"]2[/tab]
[/tabs]

[collapse title="标题" status="false"]一些文字内容[/collapse]

synb_7891
liqian9277
FlatTree
Xiao__An
xinba0007
sagit_tAdeheinu
Sxhx2011
pengyulun
cuiyunqi1229
ZYZ_CH
Jhr0202
LeoY123456
Adam1220a
NINSA
Charlie_oua
_1emonade
zby20140927
FINALE_847
xiaodaoshi
LT13392119629
yzz_sc03
DrearySun
wangjunxi121
caolihong666
luoaowoo_
Code_to_Win
http_luogu_com
QQQhz508
Zelda_max
Rui316
chenyuming2025
YaoChunhua
whmi
ming0422
lltmx
0x00AC3375
rickyhua
WA_Duck_ZhouTianRui
tyh2016_Ai_
lyllx
HuYixuan9988
gzj1237892
luyushisanyuan_robe
Meteor_1
DrinkteaX
syf6666666
zhoujieyi
xiaochengzi2014
NBFLS_Roy_Silence
mcjbhd_324
tzy20151120
GFTHaaa
AAA88888888
wang_ze_lin
noah_6
cd5dzy
zhangshuhan2013
SJDXFXCK
hy210303
daiyizhou
DJRicher
RickyZhu
minecraft_Y
Sylvia1
DengAnCheng123456
joker1st
yuyong2022
moumouxiugou
cza666
Timothy920
Code32767_2
d_dsa
gujunjia
abcdefgwrl
Gabrielpkpk
okazakiushio
Rea_Ba_Ba
xuyaofeng
yz19
leiyiqiu
FU_HL
pxchz
hh161220
tt2013331
fengjunyan114514
miemieQWQ_
Likai123456
hyperconsciousnesses
WuMinghao
lonelyfigure
lizejun0107
guozr130322
pan_lezhi
123_zzz
BACH
czx1014
mr_pp(自首免棕)
wrong_accept(自首免棕)
fhcp(自首免棕)