问题标题: 酷丁编程:13419遇到问题

0
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分,磕到甲沟炎了


0
已采纳
彭志杰
彭志杰
中级天翼
中级天翼

不要用指针吧,指针写挂很容易 RE。

0
我要回答