2021-PTA总决赛-L2-4 哲哲打游戏(模拟)
思路:
一个数组记录存档点,然后纯模拟
AcCode:
#include<iostream>
#include<vector>
#define _for(i, x, y) for(int i = x; i <= y; i++)
using namespace std;
vector<int> J[100010];
int save[110];
int main(){
int N, M;
cin >> N >> M;
_for(i, 1, N){
int K;
cin >> K;
_for(j, 1, K){
int v;
cin >> v;
J[i].push_back(v);
}
}
int pos = 1;
_for(i, 1, M){
int x;
cin >> x;
if(x == 0){
int p;
cin >> p;
pos = J[pos][p - 1]; //更新当前位置
}else if(x == 1){
int si;
cin >> si;
cout << pos << endl; //输出存档点
save[si] = pos; //存档
}else if(x == 2){
int load;
cin >> load;
pos = save[load]; //更新当前位置到存档点
}
}
cout << pos; //最终位置
return 0;
}