7-10 与零交换 (25 分)

 

 解释看这位大神的:链接

复制代码
#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
int q[N];
bool st[N];
int n;
int main() {
    cin >> n;
    for(int i = 0; i < n; i++) cin >> q[i];
    int ans = 0;
    for(int i = 0; i < n; i++) {
        if(!st[i]&&q[i]!=i){
            int t = i, flag = 0, temp = 0;
            while(!st[t]) {
                if(q[t]==0) {
                    flag = 1;
                }
                st[t] = 1;
                temp++;
                t = q[t];
            }
            if(flag) ans += temp -1 ;
            else ans += temp+1;
        }else st[i] = 1;
    }
    cout << ans << endl;
    return 0;
}
复制代码

 

posted @   飘向远方丶  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示