#13222. 珅泽教育CSP-J第一轮模拟考第十七套 第 35 题
珅泽教育CSP-J第一轮模拟考第十七套 第 35 题
程序阅读(3):函数图与环
using i64 = long long;
int solve(int N, i64 K, int A[])
{
std::vector<int> path;
std::vector<int> pos(N + 1, -1);
int cur = 1;
while (pos[cur] == -1)
{
pos[cur] = path.size();
path.push_back(cur);
cur = A[cur];
}
int start = pos[cur];
int cycle = path.size() - start;
if (K < start)
return path[K];
return path[start + ((K - start) % cycle)];
}
当 K>=start 时,函数返回 path[i],下标 i 满足( )。
{{ select(1) }}
0<=i<startstart<=i<path.size()start<=i<=path.size()i=(K-start)%cycle