我有將這一題做成Hackmd的筆記,有興趣的人可以進來看看
https://hackmd.io/@yqvHTthmTYehjxz4k9Hqrw/HJQAjjfSt
程式碼如下:
#include <bits/stdc++.h> using namespace std; const int MAXN = 1e7 + 5; int arr[50000]; int num[MAXN]; signed main(){ ios::sync_with_stdio; // I / O 優化 cin.tie(0); // I / O 優化 int a, b, ans, n; a = 0; ans = 0; cin >> n; for( int i = 0 ; i < n ; i++ ){ cin >> arr[i]; } for( int i = 0 ; i < n ; i++ ){ // 解釋見網頁 if( arr[i] != -1 ){ // 解釋見網頁 for( b = i ; arr[b] != -1 ; ){ // 解釋見網頁 a = b; // 解釋見網頁 b = arr[b]; // 解釋見網頁 arr[a] = -1; // 解釋見網頁 } // 解釋見網頁 ans += 1; // 解釋見網頁 } // 解釋見網頁 } cout << ans << endl; }
我有將這一題做成Hackmd的筆記,有興趣的人可以進來看看
https://hackmd.io/@yqvHTthmTYehjxz4k9Hqrw/HJQAjjfSt
程式碼如下:
#include <bits/stdc++.h> using namespace std; const int MAXN = 1e7 + 5; int arr[50000]; int num[MAXN]; signed main(){ ios::sync_with_stdio; // I / O 優化 cin.tie(0); // I / O 優化 int a, b, ans, n; a = 0; ans = 0; cin >> n; for( int i = 0 ; i < n ; i++ ){ cin >> arr[i]; } for( int i = 0 ; i < n ; i++ ){ // 解釋見網頁 if( arr[i] != -1 ){ // 解釋見網頁 for( b = i ; arr[b] != -1 ; ){ // 解釋見網頁 a = b; // 解釋見網頁 b = arr[b]; // 解釋見網頁 arr[a] = -1; // 解釋見網頁 } // 解釋見網頁 ans += 1; // 解釋見網頁 } // 解釋見網頁 } cout << ans << endl; }
因為上一篇的程式碼有點跑掉了,所以這裡我重發:
P.S. 我有將這一題做成Hackmd的筆記,有興趣的人可以進來看看:
https://hackmd.io/@yqvHTthmTYehjxz4k9Hqrw/HJQAjjfSt
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e7 + 5;
int arr[50000];
int num[MAXN];
signed main(){
ios::sync_with_stdio; // I / O 優化
cin.tie(0); // I / O 優化
int a, b, ans, n;
a = 0;
ans = 0;
cin >> n;
for( int i = 0 ; i < n ; i++ ){
cin >> arr[i];
}
for( int i = 0 ; i < n ; i++ ){ // 解釋見網頁
if( arr[i] != -1 ){ // 解釋見網頁
for( b = i ; arr[b] != -1 ; ){ // 解釋見網頁
a = b; // 解釋見網頁
b = arr[b]; // 解釋見網頁
arr[a] = -1; // 解釋見網頁
} // 解釋見網頁
ans += 1; // 解釋見網頁
} // 解釋見網頁
}
cout << ans << endl;
}