1 条题解

  • 1
    @ 2024-4-26 18:24:18

    使用双端队列模拟即可。虽然D命令里面的K大于1,但是A命令里面加入队列的元素是O(S)的,因此所有K加起来的和是O(S)的,时间复杂度可以接受。

    核心代码
    
    cin >> s;
    for(int i = 1 ; i <= s ; i++){
        cin >> a >> b;
        if (a == "A") {
            if (b == "L") {
                que.push_front(++cnt);
            } else {
                que.push_back(++cnt);
            }
        } else {
            cin >> k;
            for (int j = 1; j <= k; j++) {
                if (b == "L") {
                    que.pop_front();
                } else {
                    que.pop_back();
                }
            }
        }
    }
    while (!que.empty()) {
        cout << que.front() << endl;
        que.pop_front();
    }
    
    • 1

    信息

    ID
    722
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    (无)
    递交数
    49
    已通过
    25
    上传者