题目来源:蓝桥杯2018初赛 C++ C组I题

题目描述
班里N个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己)。
在一个游戏中,需要小朋友坐一个圈,
每个小朋友都有自己最崇拜的小朋友在他的右手边。
求满足条件的圈最大多少人?
小朋友编号为1,2,3,…N

输入格式
输入第一行,一个整数N(3<N<100000)
接下来一行N个整数,由空格分开。表示每位小朋友崇拜的小朋友的编号。

输出格式
输出一个整数,表示满足条件的最大圈的人数。

输入样例
9
3 4 2 5 3 8 4 6 9

输出样例
4

数据范围与提示
如图所示,崇拜关系用箭头表示,红色表示不在圈中。
显然,最大圈是[2 4 5 3] 构成的圈

问题分析
用DFS求最大圈。

AC的C语言程序如下:

/* LQ0123 小朋友崇拜圈 */#include <stdio.h>
#include <string.h>#define MAX(a, b) ((a) > (b) ? (a) : (b))#define N 100000
int n, g[N + 1], vis[N + 1], ans = 0;void dfs(int u, int v, int t)
{if (u == v)ans = MAX(ans, t);else if (vis[u] == 0) {vis[u] = 1;dfs(g[u], v, t + 1);}
}int main()
{scanf("%d", &n);for (int i = 1; i <= n; i++)scanf("%d", &g[i]);for (int i = 1; i <= n; i++) {memset(vis, 0, sizeof vis);vis[i] = 1;dfs(g[i], i, 1);}printf("%d\n", ans);return 0;
}

LQ0123 小朋友崇拜圈【DFS】相关推荐

  1. [蓝桥杯][2018年第九届真题]小朋友崇拜圈、耐摔指数、堆的计数、缩位求和、约瑟夫环

    个人题解链接,蓝桥杯历届试题,正在更新中~ 文章目录 个人题解链接,蓝桥杯历届试题,正在更新中~ 小朋友崇拜圈 耐摔指数 堆的计数 缩位求和 约瑟夫环 小朋友崇拜圈 题目描述 班里N个小朋友,每个人都 ...

  2. 蓝桥杯 小朋友崇拜圈 C语言

    标题:小朋友崇拜圈 班里N个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己). 在一个游戏中,需要小朋友坐一个圈, 每个小朋友都有自己最崇拜的小朋友在他的右手边. 求满足条件的圈最大多少人? ...

  3. Java实现第九届蓝桥杯小朋友崇拜圈

    小朋友崇拜圈 题目描述 班里N个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己). 在一个游戏中,需要小朋友坐一个圈, 每个小朋友都有自己最崇拜的小朋友在他的右手边. 求满足条件的圈最大多少人 ...

  4. 2018蓝桥杯省赛---java---C---9(小朋友崇拜圈)

    题目描述 思路分析 数组来储存小朋友们的崇拜对象,然后下标+1就是对应的小朋友座号,写一个方法找出每一个小朋友的崇拜圈大小,然后找出最大的崇拜圈即可 代码实现 package lanqiao;impo ...

  5. 蓝桥杯 小朋友崇拜圈【第九届】【省赛】【C组】 深搜DFS

    资源限制 时间限制:1.0s   内存限制:256.0MB 班里N个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己). 在一个游戏中,需要小朋友坐一个圈, 每个小朋友都有自己最崇拜的小朋友在他 ...

  6. [蓝桥杯][2018年第九届真题]小朋友崇拜圈(简单图论)

    题目描述 班里N个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己). 在一个游戏中,需要小朋友坐一个圈, 每个小朋友都有自己最崇拜的小朋友在他的右手边. 求满足条件的圈最大多少人? 小朋友编号 ...

  7. 历届真题 小朋友崇拜圈【第九届】【省赛】【C组】——【C++】【C】【Java】【Python】四种语言解法

    整个题目: 资源限制 内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s 班里N个小朋友,每个人都有自己最崇拜的一个小朋友( ...

  8. 蓝桥杯真题:小朋友崇拜圈

    输入输出样例 示例 输入 9 3 4 2 5 3 8 4 6 9 输出 4 样例解释 如下图所示,崇拜关系用箭头表示,红色表示不在圈中. 显然,最大圈是[2 4 5 3] 构成的圈. 运行限制 最大运 ...

  9. 算法第十期——DFS(深度优先搜索)的剪枝优化

    目录 DFS:剪枝 DFS:有哪些剪枝方法 DFS例题一:剪格子 [思路] DFS例题二:路径之谜 [样例分析] DFS例题三:四阶幻方 [思路] [做法一] [做法二] DFS例题三:分考场 [样例 ...

最新文章

  1. 达摩院首席数据库科学家李飞飞:云原生新战场,我们如何把握先机?
  2. 《Cucumber:行为驱动开发指南》——2.3 创建步骤定义
  3. 使用docker commit将修改后的容器保存为镜像及其使用注意事项
  4. Pixhawk代码分析-准备
  5. 使用Nginx+WordPress搭建个人网站
  6. 设计模式的C语言应用-责任链模式-第三章
  7. mysqli取代mysql,什么时候应该使用MySQLi代替MySQL?
  8. Eclipse代码自动提示设置
  9. mysql 存储过程 汉字取拼音或者首字母
  10. html5 3d gallery,使用jQuery制作3d画廊房间
  11. 手机上最好用的五笔输入法_远程输入法,用电脑键盘给手机打字,省蓝牙键盘钱了...
  12. 【颜纠日记】祛痘广告那么神?分享确切的祛痘方式。
  13. python编程考试_Python编程练习(一)
  14. Windows10 1050Ti cuda toolkit11.3 pytorch-gpu 踩坑教程
  15. 切线空间?切线空间的作用到底是什么?
  16. 5口千兆工业以太网交换机宽温导轨式二层非网管全千兆工业级交换机
  17. android 模拟器声音设置,逍遥安卓模拟器运行游戏过程中没有声音怎么解决
  18. CodeForces - 711A 找座位 难度:C++入门 复杂度:简单 翻译难度:难
  19. MySQL 各个索引的使用
  20. 蓝牙-基础篇-蓝牙简介

热门文章

  1. 信息检索——常见名词缩写汇总
  2. 地理信息系统(GIS)系列——ArcGIS中的各种图层
  3. revit浏览器 android,revit浏览器
  4. C语言实现,用*号输出字母C的图案。
  5. Imagick使用教程
  6. 唯品会 测试岗(9.15)
  7. shiro550代码审计(巨详细)--加密部分
  8. php限制文件类型,限制上传文件类型程序代码_PHP教程
  9. Sentinel热点参数规则说明
  10. 如何设定墙纸的显示方式?