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 ;
}
目录
相关文章
|
6月前
leetcode-846:一手顺子
leetcode-846:一手顺子
35 0
|
1月前
lanqiao OJ 1505 剪邮票
lanqiao OJ 1505 剪邮票
27 0
|
1月前
lanqiao oj 17136 星球(状态压缩dp)
lanqiao oj 17136 星球(状态压缩dp)
9 0
|
1月前
lanqiao oj 1135 蓝桥幼儿园(并查集)
lanqiao oj 1135 蓝桥幼儿园(并查集)
26 0
|
1月前
lanqiao OJ 131 生命之树
lanqiao OJ 131 生命之树
30 0
|
1月前
lanqiao oj 131 生命之树
lanqiao oj 131 生命之树
26 0
|
1月前
lanqiao oj 1122 蓝桥王国
lanqiao oj 1122 蓝桥王国
16 0
|
6月前
|
存储
蓝桥备战:四元组问题(蓝桥OJ 3416)
蓝桥备战:四元组问题(蓝桥OJ 3416)
62 0
|
测试技术
蓝桥 晚会节目单 (线段树)
蓝桥 晚会节目单 (线段树)
|
测试技术 C++ Perl
蓝桥 第八大奇迹 (线段树)
蓝桥 第八大奇迹 (线段树)