#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<start
  • start<=i<path.size()
  • start<=i<=path.size()
  • i=(K-start)%cycle