10pts求助
查看原帖
10pts求助
1128559
guoguo160楼主2024/7/16 09:06
#include <bits/stdc++.h>


#define int long long

using namespace std;

int x, y;
int q;

struct node {
	int num;
	int nxt;
};

node l[1000010];
int idx = 1;

map<int, int> mp;

signed main() {
	l[1].num = 1;
	mp[1] = 1;
	cin >> q;
	int lst = 1;
	for (int i = 1; i <= q; ++i) {
		int opt;
		cin >> opt;
		if (opt == 1) {
			cin >> x >> y;
			if (lst == x) lst = y;
			l[++idx].num = y;
			mp[y] = idx;
			l[mp[x]].nxt = idx;
		} else if (opt == 2) {
			cin >> x;
			if (x == lst) cout << 0 << "\n";
			else
				cout << l[l[mp[x]].nxt].num << "\n";
		} else {
			cin >> x;
			int to = l[l[mp[x]].nxt].nxt;
			l[mp[x]].nxt = to;
		}
	}
}

只有第一个点AC……

2024/7/16 09:06
加载中...