全部知识点

第1201题

(Josephus问题)有n个人围城一个圈,依次标号0至n-1。从0号开始,依次0,1,0,1,...交替报数,报到1的人会离开,直至圈中只剩下一个人。求最后剩下人的编号。

试补全模拟程序。

#include <stdio.h>
const int MAXN = 1000000;
int F[MAXN];
int main() {
    int n;
    scanf("%d", &n);
    int i =0, p = 0, c = 0;
    while (①) {
        if (F[i] == 0) {
            if (②) {
                F[i] = 1;
                ③;
            }
            ④;
        }
        ⑤;
    }
    int ans = -1;
    for (i = 0; i < n; i++)
        if (F[i] == 0)
            ans = i;
    printf("%d\n", ans);
    return 0;
}

①处应填( )

第1202题

(Josephus问题)有n个人围城一个圈,依次标号0至n-1。从0号开始,依次0,1,0,1,...交替报数,报到1的人会离开,直至圈中只剩下一个人。求最后剩下人的编号。

试补全模拟程序。

#include <stdio.h>
const int MAXN = 1000000;
int F[MAXN];
int main() {
    int n;
    scanf("%d", &n);
    int i =0, p = 0, c = 0;
    while (①) {
        if (F[i] == 0) {
            if (②) {
                F[i] = 1;
                ③;
            }
            ④;
        }
        ⑤;
    }
    int ans = -1;
    for (i = 0; i < n; i++)
        if (F[i] == 0)
            ans = i;
    printf("%d\n", ans);
    return 0;
}

②处应填( )

第1203题

(Josephus问题)有n个人围城一个圈,依次标号0至n-1。从0号开始,依次0,1,0,1,...交替报数,报到1的人会离开,直至圈中只剩下一个人。求最后剩下人的编号。

试补全模拟程序。

#include <stdio.h>
const int MAXN = 1000000;
int F[MAXN];
int main() {
    int n;
    scanf("%d", &n);
    int i =0, p = 0, c = 0;
    while (①) {
        if (F[i] == 0) {
            if (②) {
                F[i] = 1;
                ③;
            }
            ④;
        }
        ⑤;
    }
    int ans = -1;
    for (i = 0; i < n; i++)
        if (F[i] == 0)
            ans = i;
    printf("%d\n", ans);
    return 0;
}

③处应填( )

第1204题

(Josephus问题)有n个人围城一个圈,依次标号0至n-1。从0号开始,依次0,1,0,1,...交替报数,报到1的人会离开,直至圈中只剩下一个人。求最后剩下人的编号。

试补全模拟程序。

#include <stdio.h>
const int MAXN = 1000000;
int F[MAXN];
int main() {
    int n;
    scanf("%d", &n);
    int i =0, p = 0, c = 0;
    while (①) {
        if (F[i] == 0) {
            if (②) {
                F[i] = 1;
                ③;
            }
            ④;
        }
        ⑤;
    }
    int ans = -1;
    for (i = 0; i < n; i++)
        if (F[i] == 0)
            ans = i;
    printf("%d\n", ans);
    return 0;
}

④处应填( )

第1205题

(Josephus问题)有n个人围城一个圈,依次标号0至n-1。从0号开始,依次0,1,0,1,...交替报数,报到1的人会离开,直至圈中只剩下一个人。求最后剩下人的编号。

试补全模拟程序。

#include <stdio.h>
const int MAXN = 1000000;
int F[MAXN];
int main() {
    int n;
    scanf("%d", &n);
    int i =0, p = 0, c = 0;
    while (①) {
        if (F[i] == 0) {
            if (②) {
                F[i] = 1;
                ③;
            }
            ④;
        }
        ⑤;
    }
    int ans = -1;
    for (i = 0; i < n; i++)
        if (F[i] == 0)
            ans = i;
    printf("%d\n", ans);
    return 0;
}

⑤处应填( )

第1206题

(矩形计数)平面上有n个关键点,求有多少个四条边都和x轴或者y轴平行的矩形,满足四个顶点都是关键点。给出的关键点可能有重复,但完全重合的矩形只计一次。

试补全枚举算法。

#include <stdio. h>
struct point {
    int x, y, id;
};
int equals(struct point a, struct point b) {
    return a.x == b.x && a.y == b.y;
}
int cmp(struct point a, struct point b) {
    return ①;
}
void sort(struct point A[], int n) {
    for (int i = 0; i < n; i++)
        for (int j = 1; j < n; j++)
            if (cmp(A[j], A[j - 1])) {
                struct point t = A[j];
                A[j] = A[j - 1];
                A[j - 1] = t;
            }
}
int unique(struct point A[], int n) {
    int t = 0;
    for(int i = 0; i < n; i++)
        if (②)
            A[t++] = A[i];
    return t;
}
int binary_search(struct point А[], int n, int x, int y) {
    struct point p;
    p.x = x;
    р.y = y;
    p.id = n;
    int a = 0,b = n - 1;
    while (a < b) {
        int mid = ③;
        if (④)
            a = mid + 1;
        else
            b = mid;
    }
    return equals(A[a], р);
}
#define MAXN 1000
struct point A[MAXN];
int main() {
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d %d", &A[i].x, &A[i].y);
        A[i].id = i;
    }
    sort(A, n);
    n = unique(A, n);
    int ans = 0;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            if (⑤ && binary_search(A, n, A[i].x, A[j].y) && binary_search(A, n, A[j].x, A[i].y)) {
                ans++;
            }
    printf("%d\n", ans);
    return 0;
}

①处应填( )

第1207题

(矩形计数)平面上有n个关键点,求有多少个四条边都和x轴或者y轴平行的矩形,满足四个顶点都是关键点。给出的关键点可能有重复,但完全重合的矩形只计一次。

试补全枚举算法。

#include <stdio. h>
struct point {
    int x, y, id;
};
int equals(struct point a, struct point b) {
    return a.x == b.x && a.y == b.y;
}
int cmp(struct point a, struct point b) {
    return ①;
}
void sort(struct point A[], int n) {
    for (int i = 0; i < n; i++)
        for (int j = 1; j < n; j++)
            if (cmp(A[j], A[j - 1])) {
                struct point t = A[j];
                A[j] = A[j - 1];
                A[j - 1] = t;
            }
}
int unique(struct point A[], int n) {
    int t = 0;
    for(int i = 0; i < n; i++)
        if (②)
            A[t++] = A[i];
    return t;
}
int binary_search(struct point А[], int n, int x, int y) {
    struct point p;
    p.x = x;
    р.y = y;
    p.id = n;
    int a = 0,b = n - 1;
    while (a < b) {
        int mid = ③;
        if (④)
            a = mid + 1;
        else
            b = mid;
    }
    return equals(A[a], р);
}
#define MAXN 1000
struct point A[MAXN];
int main() {
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d %d", &A[i].x, &A[i].y);
        A[i].id = i;
    }
    sort(A, n);
    n = unique(A, n);
    int ans = 0;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            if (⑤ && binary_search(A, n, A[i].x, A[j].y) && binary_search(A, n, A[j].x, A[i].y)) {
                ans++;
            }
    printf("%d\n", ans);
    return 0;
}

②处应填( )

第1208题

(矩形计数)平面上有n个关键点,求有多少个四条边都和x轴或者y轴平行的矩形,满足四个顶点都是关键点。给出的关键点可能有重复,但完全重合的矩形只计一次。

试补全枚举算法。

#include <stdio. h>
struct point {
    int x, y, id;
};
int equals(struct point a, struct point b) {
    return a.x == b.x && a.y == b.y;
}
int cmp(struct point a, struct point b) {
    return ①;
}
void sort(struct point A[], int n) {
    for (int i = 0; i < n; i++)
        for (int j = 1; j < n; j++)
            if (cmp(A[j], A[j - 1])) {
                struct point t = A[j];
                A[j] = A[j - 1];
                A[j - 1] = t;
            }
}
int unique(struct point A[], int n) {
    int t = 0;
    for(int i = 0; i < n; i++)
        if (②)
            A[t++] = A[i];
    return t;
}
int binary_search(struct point А[], int n, int x, int y) {
    struct point p;
    p.x = x;
    р.y = y;
    p.id = n;
    int a = 0,b = n - 1;
    while (a < b) {
        int mid = ③;
        if (④)
            a = mid + 1;
        else
            b = mid;
    }
    return equals(A[a], р);
}
#define MAXN 1000
struct point A[MAXN];
int main() {
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d %d", &A[i].x, &A[i].y);
        A[i].id = i;
    }
    sort(A, n);
    n = unique(A, n);
    int ans = 0;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            if (⑤ && binary_search(A, n, A[i].x, A[j].y) && binary_search(A, n, A[j].x, A[i].y)) {
                ans++;
            }
    printf("%d\n", ans);
    return 0;
}

③处应填( )

第1209题

(矩形计数)平面上有n个关键点,求有多少个四条边都和x轴或者y轴平行的矩形,满足四个顶点都是关键点。给出的关键点可能有重复,但完全重合的矩形只计一次。

试补全枚举算法。

#include <stdio. h>
struct point {
    int x, y, id;
};
int equals(struct point a, struct point b) {
    return a.x == b.x && a.y == b.y;
}
int cmp(struct point a, struct point b) {
    return ①;
}
void sort(struct point A[], int n) {
    for (int i = 0; i < n; i++)
        for (int j = 1; j < n; j++)
            if (cmp(A[j], A[j - 1])) {
                struct point t = A[j];
                A[j] = A[j - 1];
                A[j - 1] = t;
            }
}
int unique(struct point A[], int n) {
    int t = 0;
    for(int i = 0; i < n; i++)
        if (②)
            A[t++] = A[i];
    return t;
}
int binary_search(struct point А[], int n, int x, int y) {
    struct point p;
    p.x = x;
    р.y = y;
    p.id = n;
    int a = 0,b = n - 1;
    while (a < b) {
        int mid = ③;
        if (④)
            a = mid + 1;
        else
            b = mid;
    }
    return equals(A[a], р);
}
#define MAXN 1000
struct point A[MAXN];
int main() {
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d %d", &A[i].x, &A[i].y);
        A[i].id = i;
    }
    sort(A, n);
    n = unique(A, n);
    int ans = 0;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            if (⑤ && binary_search(A, n, A[i].x, A[j].y) && binary_search(A, n, A[j].x, A[i].y)) {
                ans++;
            }
    printf("%d\n", ans);
    return 0;
}

④处应填( )

第1210题

(矩形计数)平面上有n个关键点,求有多少个四条边都和x轴或者y轴平行的矩形,满足四个顶点都是关键点。给出的关键点可能有重复,但完全重合的矩形只计一次。

试补全枚举算法。

#include <stdio. h>
struct point {
    int x, y, id;
};
int equals(struct point a, struct point b) {
    return a.x == b.x && a.y == b.y;
}
int cmp(struct point a, struct point b) {
    return ①;
}
void sort(struct point A[], int n) {
    for (int i = 0; i < n; i++)
        for (int j = 1; j < n; j++)
            if (cmp(A[j], A[j - 1])) {
                struct point t = A[j];
                A[j] = A[j - 1];
                A[j - 1] = t;
            }
}
int unique(struct point A[], int n) {
    int t = 0;
    for(int i = 0; i < n; i++)
        if (②)
            A[t++] = A[i];
    return t;
}
int binary_search(struct point А[], int n, int x, int y) {
    struct point p;
    p.x = x;
    р.y = y;
    p.id = n;
    int a = 0,b = n - 1;
    while (a < b) {
        int mid = ③;
        if (④)
            a = mid + 1;
        else
            b = mid;
    }
    return equals(A[a], р);
}
#define MAXN 1000
struct point A[MAXN];
int main() {
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d %d", &A[i].x, &A[i].y);
        A[i].id = i;
    }
    sort(A, n);
    n = unique(A, n);
    int ans = 0;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            if (⑤ && binary_search(A, n, A[i].x, A[j].y) && binary_search(A, n, A[j].x, A[i].y)) {
                ans++;
            }
    printf("%d\n", ans);
    return 0;
}

⑤处应填( )

第1211题

在Linux系统终端中,用于列出当前目录下所含的文件和子目录的命令为( )。

第1212题

二进制数001010102和000101102的和为( )。

第1213题

在程序运行过程中,如果递归调用的层数过多,可能会由于( )引发错误。

第1214题

以下排序方法中,( )是不稳定的。

第1215题

以比较为基本运算,对于2n个数,同时找到最大值和最小值,最坏情况下需要的最小的比较次数为( )。

第1216题

现有一个地址区间为0~10的哈希表,对于出现冲突情况,会往后找第一个空的地址存储(到10冲突了就从0开始往后),现在要依次存储(0,1,2,3,4,5,6,7),哈希函数为h(x)=xmod 11。请问7存储在哈希表哪个地址中( )。

第1217题

G是一个非连通简单无向图(没有自环和重边),共有36条边,则该图至少有( )个点。

第1218题

令根结点的高度为1,则一棵含有2021个结点的二叉树的高度至少为( )。

第1219题

前序遍历和中序遍历相同的二叉树为且仅为( )。

第1220题

定义一种字符串操作为交换相邻两个字符。将“DACFEB”变为 “ABCDEF”最少需要( )次上述操作。

0.054269s