倍增裸题,不会很难,求求了(wssb)
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n, k, f[200100][70], ans = 1, cnt;
main() {
cin >> n >> k;
for (int i = 1; i <= n; i++)
cin >> f[i][0];
for (int j = 1; j <= 70; j++)
for (int i = 1; i <= n; i++)
f[i][j] = f[f[i][j - 1]][j - 1];
for (int i = 0; k; k >>= 1, i++) {
if (k & 1)
ans = f[ans][cnt];
}
cout << ans << endl;
return 0;
}