0
已解决
题目链接: 酷丁编程:13419
#include<bits/stdc++.h>
using namespace std;
int p[1000005];
void s() {
int*v=new int[1000005]();
int n;
cin>>n;
for (int i=1;i <= n;i++) {
cin>>p[i];
}
int r=0;
for(int i=0;i<n;i++){
if(v[i] == 0) {
int c=i;
int m=0;
while (v[c] == 0) {
v[c]=1;
m++;
c=p[c+1]-1;
}
r+=(m-1)/2;
}
}
cout << r << endl;
}
int main() {
int*v=new int[1000005]();
int t;
cin>>t;
while(t -- ) {
s();
}
return 0;
}
666RE60分,磕到甲沟炎了
