hihoCoder 1518 : 最大集合
来源:互联网 发布:淘宝倒卖赚差价的生意 编辑:程序博客网 时间:2024/06/11 05:25
#1518 : 最大集合
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
- 样例输入
7 6 5 1 4 2 7 3
- 样例输出
4
描述
给定一个1-N的排列A[1], A[2], ... A[N],定义集合S[K] = {A[K], A[A[K]], A[A[A[K]]] ... }。
显然对于任意的K=1..N,S[K]都是有限集合。
你能求出其中包含整数最多的S[K]的大小吗?
输入
第一行包含一个整数N。(1 <= N <= 100000)
第二行包含N个两两不同的整数,A[1], A[2], ... A[N]。(1 <= A[i] <= N)
输出
最大的S[K]的大小。
分析:递归求解,将所有遍历过的元素做好标记,每次搜索从未标记的元素开始
AC代码:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=1e5+10;int A[maxn];int vis[maxn];int N;int Max;void digui(int i,int start,int& cur){if(i==start && cur!=0)return ;cur++;vis[i]=1;digui(A[i],start,cur);}int main(){while(scanf("%d",&N)==1){for(int i=1;i<=N;i++)scanf("%d",&A[i]);Max=0;memset(vis,0,sizeof(vis));int ans;for(int i=1;i<=N;i++){ans=0;if(!vis[i])digui(i,i,ans);Max=max(Max,ans);}printf("%d\n",Max);}return 0;}
0 0
- hihoCoder 1518 : 最大集合
- hihocoder #1502 : 最大子矩阵
- 二分图最大匹配(HihoCoder
- hihoCoder第一周:求解最大回文串
- 最大带权子树(hihocoder变种题)
- hihocoder 1122最大二分匹配匈牙利算法
- hihocoder 1369 网络流之最大流
- hihocoder 1580(最大子矩阵变形)
- hihocoder week170分析---最大子完全图
- hihoCoder 1122 二分图最大匹配 最大流
- 集合最大乘积
- 集合最大元问题
- hihocoder:
- hihoCoder
- Hihocoder
- hihocoder
- hihocoder
- hihocoder
- Batch Normalization梯度反向传播推导
- 2017-05-09 总结
- Android N 多窗口的设计
- 服务的基本用法-1
- ios 蓝牙开发总结
- hihoCoder 1518 : 最大集合
- 熔断器设计模式
- 在 Ubuntu 中手动安装任何版本的 Firefox
- Android Studio安装Genymotion插件
- 随便逛了下CSDN的课堂
- struts2 项目j建立过程
- 静态化
- 51nod 1060 最复杂的数 反素数
- C++作业五