lanqiao OJ 182 小朋友崇拜圈

简介: lanqiao OJ 182 小朋友崇拜圈

1.小朋友崇拜圈 - 蓝桥云课 (lanqiao.cn)

从每一个小朋友开始dfs,当找到最后一个崇拜第一个的时候就更新最终值,因为再往下去就陷入死循环了

#include<iostream>
#include<cstring>
#include<algorithm>
 
using namespace std ;
const int N = 5e5 + 10 ;
int n ;
int b[N] ;
int ans ;
struct node{//存当前点,x是下标,y是崇拜的同学
  int x , y ;
  node(int xx, int yy){
    x = xx , y = yy ;
  }
};
vector<node> a ;
bool v[N] ;
void dfs(int u ){
  if(a[0].x == a[u-1].y) {
    ans = max(ans,u) ;
    return ;
  }
  if(!v[a[u-1].y]){
    a.push_back(node(a[u-1].y,b[a[u-1].y])) ;//把当前被崇拜的这个小朋友插入数组中
    v[a[u-1].y] = 1;
    dfs(u+1) ;
  }
  
  
  return ;
}
 
int main(){
  cin >> n ; 
  for(int i = 1 ; i <= n ; i ++){
    cin >> b[i] ;
  }
  
  for(int i = 1 ; i <= n ; i++){
    a.push_back(node(i,b[i])) ;
    memset(v,0,sizeof v) ; 
    v[i] = 1 ;
    dfs(1);
    a.clear() ;
  }
  cout << ans << endl ;
}
相关文章
|
3月前
【蓝桥杯】[递归]母牛的故事
蓝桥杯——[递归]母牛的故事
41 1
【蓝桥杯】[递归]母牛的故事
|
测试技术 C++ Perl
蓝桥 第八大奇迹 (线段树)
蓝桥 第八大奇迹 (线段树)
|
测试技术
蓝桥 晚会节目单 (线段树)
蓝桥 晚会节目单 (线段树)
|
算法 测试技术
蓝桥杯2022年第十三届决赛真题-卡牌——二分法
蓝桥杯2022年第十三届决赛真题-卡牌——二分法
119 0
|
算法 C++ Python
【每日算法Day 87】今天我脱单了,所以大家不用做题了!
【每日算法Day 87】今天我脱单了,所以大家不用做题了!
119 0
|
机器学习/深度学习 C++
蓝桥杯C++小朋友崇拜圈
蓝桥杯C++小朋友崇拜圈
102 0
三道好题分享
上课睡觉 - AcWing题库
81 0
|
存储
【蓝桥杯集训·每日一题】AcWing 4309. 消灭老鼠
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 最大公约数
80 0
【力扣】爬楼梯问题 小时候家长考过你吗?
【力扣】爬楼梯问题 小时候家长考过你吗?
116 0
【力扣】爬楼梯问题 小时候家长考过你吗?