题目简化和分析:

这题不用说怎么分析了吧,这一看就是个并查集求连通分量个数的经典模板。

我们需要将 \(i\) 和 \(p_i\) 进行合并。

遍历每个 \(i\) 与 \(i+1\) 是否属于同一个集合。

  • 属于不管。
  • 不属于贡献增加,并合并。

注意范围!

Solution:

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
#define int long long
const int N=1e4+50;
const int mod=1e9+7;
int t,n;
int p[N],a[N];
int find(int x){
if(x!=p[x]) return p[x]=find(p[x]);
return p[x];
}
signed main()
{
scanf("%lld",&n);
for(int i=1;i<=n;++i) p[i]=i;
for(int i=1;i<=n;++i){
scanf("%lld",&a[i]);
int fx=find(i),fy=find(a[i]);
if(fx!=fy){
p[fx]=fy;
}
}
int ans=1;
for(int i=1;i<n;++i){
int fx=find(i),fy=find(i+1);
if(fx!=fy){
ans++;
p[fx]=fy;
}
}
printf("%lld\n",ans);
}

CF755C的更多相关文章

  1. CF755C PolandBall and Forest 题解

    Content 给定无向图的 \(n\) 个点的父亲节点,求无向图的联通块个数. 数据范围:\(1\leqslant n\leqslant 10^4\). Solution 并查集模板题. 我们将在当 ...

随机推荐

  1. 实时阴影技术(Real-time Shadows)

    目录 Shadow Mapping 基本实现 Shadow Bias Peter Panning 问题 & 简单 Trick Slope Scale Based Depth Bias Casc ...

  2. Web网页音视频通话之基于Sipjs

    简述 本文是以FreeSwitch作为信令服务器,通过sipjs(基于webRtc) 进行媒体协商,网络协商后,进行P2P媒体传输. 参考知识: sip.js https://sipjs.com/ w ...

  3. 智能制造之路—从0开始打造一套轻量级MOM平台

    一.概述 面对数字化浪潮,MOM需求迈入上升期,数字化从"可选项"变成了企业竞争"必选项".制造行业每个工厂的生产逻辑都不尽相同,流程的梳理.数据统一化都需要调 ...

  4. Mybatis(日志工厂)

    日志工厂 如果一个数据库操作,出现了异常,我们需要排错.所以日志就是最好的助手 曾经:sout.debug 现在:日志工厂 SLF4J[工作中,springboot] LOG4J[掌握] LOG4J2 ...

  5. U8接口开发

    https://console-docs.apipost.cn/preview/b9674fcd9949865b/a5a249fb27736c15 模块 单据 功能说明 库存管理       其他出库 ...

  6. 2023-07-23:给你 n 个任务和 m 个工人 每个任务需要一定的力量值才能完成 需要的力量值保存在下标从 0 开始的整数数组 tasks 中 第 i 个任务需要 tasks[i] 的力量才能完

    2023-07-23:给你 n 个任务和 m 个工人 每个任务需要一定的力量值才能完成 需要的力量值保存在下标从 0 开始的整数数组 tasks 中 第 i 个任务需要 tasks[i] 的力量才能完 ...

  7. Python将大的csv文件拆分多个小的csv文件

    #ecoding=utf-8 import os import time # 2019/9/8 将大的csv文件拆分多个小的csv文件 def mkSubFile(lines, head, srcNa ...

  8. 自用 .net C# CSV文件写入读取工具类

    using System.Data; using System.IO; using System.Linq; using System.Text; using System.Text.RegularE ...

  9. Vue报错:Invalid handler for event "changeUI": got undefined

    解决方案 错误代码如下所示: <router-view @hideBox="hideLoginRegisterBox" @changeUI="changeLogin ...

  10. peewee模块更改数据-sqlite

    更改数据 from playhouse.migrate import *# SQLite example: my_db = SqliteDatabase('my_database.db') migra ...