今晚 ABC E 求条
查看原帖
今晚 ABC E 求条
255169
__LePetitPrince__楼主2024/3/9 21:44

蒟蒻链表写挂了(

另外不懂某些佬为什么要双向链表

// g++ abc344_e.cpp -o 1
#include <iostream>
#include <map>
using namespace std;
const int S = 2e5 + 5;
int n, q;
struct N {
    int v, pre, nxt;
} a[S];
map<int, int> mp;
int main() {
    cin >> n;
    a[0].nxt = 1;
    mp[0] = 0;
    for (int i = 1, x; i <= n; i++) {
        cin >> x;
        mp[x] = i;
        a[i].pre = i - 1, a[i].nxt = i + 1, a[i].v = x;
    }
    a[n].nxt = -1;
    cin >> q;
    int op, x, y;
    while (q--) {
        cin >> op >> x;
        if (op == 1) {
            cin >> y;
            int p = mp[x], nx = a[p].nxt;
            n++;
            if (nx != -1) a[nx].pre = n;
            a[p].nxt = n;
            mp[y] = n;
            a[n].pre = p, a[n].nxt = nx, a[n].v = y;
        } else {
            int p = mp[x], pr = a[p].pre, nx = a[p].nxt;
            a[pr].nxt = nx;
            if (nx != -1) a[nx].pre = pr;
            mp[x] = -1;
        }
    }
    int p = a[0].nxt;
    while (p != -1) {
        cout << a[p].v << ' ';
        p = a[p].nxt;
    }
    return 0;
}
2024/3/9 21:44
加载中...