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 ;
}
目录
相关文章
|
7月前
acwing 恨7不成妻
acwing 恨7不成妻
56 0
|
2月前
lanqiao OJ 22年省赛 扫雷
lanqiao OJ 22年省赛 扫雷
32 1
|
2月前
lanqiao OJ 1505 剪邮票
lanqiao OJ 1505 剪邮票
30 0
|
2月前
lanqiao oj 1121 蓝桥公园(floyd)
lanqiao oj 1121 蓝桥公园(floyd)
44 0
|
2月前
lanqiao OJ 2097 青蛙过河
lanqiao OJ 2097 青蛙过河
15 0
|
2月前
lanqiao oj 1135 蓝桥幼儿园(并查集)
lanqiao oj 1135 蓝桥幼儿园(并查集)
32 0
|
2月前
lanqiao OJ 131 生命之树
lanqiao OJ 131 生命之树
34 0
|
2月前
lanqiao oj 131 生命之树
lanqiao oj 131 生命之树
32 0
|
2月前
|
BI
lanqiao OJ 蜗牛
lanqiao OJ 蜗牛
27 0
|
2月前
lanqiao OJ 234 大胖子走迷宫
lanqiao OJ 234 大胖子走迷宫
14 0