LQ0123 小朋友崇拜圈【DFS】
创始人
2024-01-20 03:12:02
0

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

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

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

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

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

输出样例
4

数据范围与提示
如图所示,崇拜关系用箭头表示,红色表示不在圈中。
显然,最大圈是[2 4 5 3] 构成的圈
在这里插入图片描述
问题分析
用DFS求最大圈。

AC的C语言程序如下:

/* LQ0123 小朋友崇拜圈 */#include 
#include #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;
}

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...