社区讨论
#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输出:
CPP3 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 条回复,欢迎继续交流。
正在加载回复...