1 条题解

  • 0
    @ 2026-3-27 13:43:06

    利用循环链表模拟该过程,无任何优化,O(nm)O(n*m)

    #include <iostream>
    using namespace std;
    
    // 节点定义
    struct Node {
        int data;
        Node* next;
        Node* prev;
    };
    
    int main() {
        int n,m;
        cin >> n >> m;
        Node* Head = new Node();
        Head->data = 1;
        Node* tmp = Head;
        for(int i = 2;i<=n;i++){
            tmp->next = new Node();
            tmp->next->data = i;
            tmp = tmp->next;
        }
        tmp->next = Head;
        for(int i = 1;i<=n;i++)
        {
            for(int j = 1;j<m;j++)tmp = tmp->next;
            cout << tmp->next->data << " ";
            Node *p = tmp->next;
            tmp->next = p->next;
            delete(p);
        }
    }
    

    信息

    ID
    151
    时间
    1000ms
    内存
    256MiB
    难度
    3
    标签
    递交数
    13
    已通过
    4
    上传者