社区讨论

#1TLE,但是本地输出正常且是正确的

P1996约瑟夫问题参与者 4已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lo12lxrn
此快照首次捕获于
2023/10/22 14:11
2 年前
此快照最后确认于
2023/11/02 13:40
2 年前
查看原帖
C
#include <iostream>
using namespace std;
//静态链表?
typedef struct X {
    int cur; //0为头节点不算 
    int out[105]; //1为出列
};
int main() {
    int n, m;
    //100 3
    cin >> n >> m;
    X x;
    x.cur = 1; //当前所指的下标  下标0跳过 1~n
    int i = 1; //计数器
    int g = i; //出列的个数

    //判断是否全部出列
    while (g<=n) {
        //当下标到末尾的时候回到开头
        if (x.cur > n) {
            x.cur = 1;
        }
        //判断当前下标是否已出列
        if (x.out[x.cur]!=1) {
            if (i%m==0) { //是m的倍数就出列
                g++;  //出列个数+1
                x.out[x.cur] = 1; //出列
                cout <<x.cur << " ";            }
            //未出列才让计数器++
            i++;
        }
        x.cur++;
    }
    return 0;
}
#1输入: 100 3
输出:
CPP
3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99 2 7 11 16 20 25 29 34 38 43 47 52 56 61 65 70 74 79 83 88 92 97 1 8 14 22 28 35 41 49 55 62 68 76 82 89 95 4 13 23 32 44 53 64 73 85 94 5 19 37 50 67 80 98 17 40 59 86 10 46 77 26 71 31 100 58 91
这个输出测试了一下 是对的 但就是#1会 TLE 求大佬解答

回复

3 条回复,欢迎继续交流。

正在加载回复...