RT,我的代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,temp,b[500005];
int main(){
ios::sync_with_stdio(false);
cin>>n;
b[1]=0;
for (ll i=1;i<=n;i++){
cin>>temp;
b[i*2+1]=b[temp]+1;
b[i*2]=b[temp]+1;
}
for (ll i=1;i<=2*n+1;i++){
cout<<b[i]<<endl;
}
return 0;
}
以上代码用时约600ms.
根据粗略的计算,整个算法的时间复杂度在O(n)级别,而1≤N≤2×10^5,请问为何此算法时间复杂度如此之慢?