请问为什么在第一部分转化的时候
for (int i = 1; i <= n; ++i)
scanf("%d", a + i);
for (int i = 1; i <= n; ++i)
scanf("%d",b + a[i]);
会得出错误结果,而
for (int i = 1; i <= n; ++i) {
int x;
scanf("%d", &x);
a[x] = i;
}
for (int i = 1; i <= n; ++i) {
int x;
scanf("%d", &x);
b[i] = a[x];
}
就能 AC。