rt,啥东西,有没有人科普一下,能参加不?
谈睿在2025-05-25 20:54:39追加了内容
快吐了。。。但做完了。
评价一下,前四题比较水,最后一题写的时候我都不知道自己在干什么(稀里糊涂的)。
谈睿在2025-05-26 20:29:44追加了内容
第五题我的AC代码,
思路的话,简而言之,
就是把大的循环(不知道用什么词)块拆成小的循环,
算次数,有点数学的成分把,很乱。
#include<iostream>
using namespace std;
int t,n,a[1000005],ans;
int main(){
cin>>t;
while(t--){
ans=0;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++){
if(a[i]!=-1){
int len=0,j=i;
while(a[j]!=-1){
len++;
int nj=a[j];
a[j]=-1;
j=nj;
}
if(len==1||len==2) continue;
if(len%2==0) ans+=len/2-1;
else ans+=(len-1)/2;
}
}
cout<<ans<<endl;
}
return 0;
}




