#2 #3 #4 WA了,求调!

P1160 队列安排

@[TheDreamToSky](/user/1047177) 注意这句话: >接下来 $ M $ 行,每行一个正整数 $ x $ ,表示将 $ x $ 号同学从队列中移去,如果 $ x $ 号同学已经不在队列中则忽略这一条指令。 $ code $ : ```cpp #include <iostream> using namespace std; const int Nm = 1e5 + 10; struct node { int pn[2]; }Node[Nm]; bool b[Nm]; int main() { int M, N; scanf("%d", &N); int first = 1; for (int i = 2; i <= N; i++) { int k, p; scanf("%d %d", &k, &p); Node[Node[k].pn[p]].pn[p ^ 1] = i; Node[i].pn[p] = Node[k].pn[p]; Node[i].pn[p ^ 1] = k; Node[k].pn[p] = i; if (k == first && p == 0) first = i; } scanf("%d", &M); while (M--) { int x; scanf("%d", &x); if (b[x] == true) continue; Node[Node[x].pn[0]].pn[1] = Node[x].pn[1]; Node[Node[x].pn[1]].pn[0] = Node[x].pn[0]; if (x == first) first = Node[x].pn[1]; b[x] = true; } for (int i = first; i != 0; i = Node[i].pn[1]) printf("%d ", i); } ```
by qianhaoyu @ 2024-04-15 20:18:26


@[qianhaoyu](/user/924502) 十分感谢!
by TheDreamToSky @ 2024-04-21 09:47:07


|