From 1254ed1739355ab5794116f0e9e699187710ed09 Mon Sep 17 00:00:00 2001 From: hanyixuanten <105723997+hanyixuanten@users.noreply.github.com> Date: Thu, 8 Oct 2026 21:18:23 +0800 Subject: [PATCH] new file: B3805.cpp [skip ci] --- B3805.cpp | 14 ++++++++++++++ B3805.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 B3805.cpp create mode 100644 B3805.md diff --git a/B3805.cpp b/B3805.cpp new file mode 100644 index 0000000..dc78554 --- /dev/null +++ b/B3805.cpp @@ -0,0 +1,14 @@ +#include +using namespace std; +int n, s; +int main() { + scanf("%d", &n); + int ans = 0; + for (int i = 1; i <= n; ++i) { + scanf("%d", &s); + if (s == i) + ans++; + } + printf("%d\n", ans); + return 0; +} \ No newline at end of file diff --git a/B3805.md b/B3805.md new file mode 100644 index 0000000..761dc49 --- /dev/null +++ b/B3805.md @@ -0,0 +1,43 @@ +# B3805 [语言月赛 202307] 团伙首领 + +## 题目描述 + +某 E 正在机房值班,小朋友吵得她头晕脑胀,她将 $N$ 名吵闹的小朋友带出了机房,依次编号为 $1,2,\cdots,N$。 + +某 E 发现,这些小朋友形成了若干个小团伙,每个小朋友属于且只属于一个小团伙。她要求每一名小朋友指出自己所在小团伙的首领编号,第 $i$ 名小朋友指认的首领编号为 $S_i$。 + +假定所有小朋友都没有说谎,请问这 $N$ 名小朋友中一共形成了多少个小团伙? + +## 输入格式 + +输入共两行。 + +输入的第一行为一个正整数 $N$。 + +输入的第二行为 $N$ 个正整数,第 $i$ 个为 $S_i$。 + +## 输出格式 + +输出一行一个整数,代表机房里小团体的数目。 + +## 输入输出样例 #1 + +### 输入 #1 + +``` +5 +1 1 3 4 1 +``` + +### 输出 #1 + +``` +3 +``` + +## 说明/提示 + +### 数据规模与约定 + +- 对于 $30\%$ 的测试数据,每个小团体有且只有一个人。 + - 对于 $100\%$ 的测试数据,$N \le10^6$,$1 \leq S_i \leq N$。数据保证有解且合法,即每个小朋友都真实地指认了 ta 所在团伙的首领。 \ No newline at end of file