【noip2015】信息传递
来源:互联网 发布:spss for mac已到期 编辑:程序博客网 时间:2024/06/04 19:50
题目描述
有n个同学(编号为1到n)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学。
游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得知自己的生日时,游戏结束。请问该游戏一共可以进行几轮?
输入输出格式
输入格式:
输入共2行。
第1行包含1个正整数n表示n个人。
第2行包含n个用空格隔开的正整数T1,T2,……,Tn其中第i个整数Ti示编号为i
的同学的信息传递对象是编号为Ti的同学,Ti≤n且Ti≠i
数据保证游戏一定会结束。
输出格式:
输出共 1 行,包含 1 个整数,表示游戏一共可以进行多少轮。
输入输出样例
输入样例#1: 复制
5
2 4 2 3 1
输出样例#1: 复制
3
说明
样例1解释
游戏的流程如图所示。当进行完第 3 轮游戏后, 4 号玩家会听到 2 号玩家告诉他自
己的生日,所以答案为 3。当然,第 3 轮游戏后, 2 号玩家、 3 号玩家都能从自己的消息
来源得知自己的生日,同样符合游戏结束的条件。
对于 30%的数据, n ≤ 200;
对于 60%的数据, n ≤ 2500;
对于 100%的数据, n ≤ 200000。
先拓扑排序删点只剩下还,然后深搜
/*有向图中的最小环长度问题 */#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int MAXN= 200001;int n,tot,best=0x7fffffff,a[MAXN],ru[MAXN],stat[MAXN/2];bool b[MAXN];int zhan[MAXN],top;void topsort(){ for (int i=1; i<=tot; i++) zhan[++top]=stat[i]; while (top!=0) { int now=zhan[top--]; b[now]=true; if (--ru[a[now]]==0) zhan[++top]=a[now]; }}void dfs(int x,int num){ if (b[x]) {best=min(best,num); return;} b[x]=true; dfs(a[x],num+1);}int main(){ scanf("%d",&n); int k=0; for (int i=1; i<=n; i++) { scanf("%d",&a[i]); ru[a[i]]++; } for (int i=1; i<=n; i++) if (ru[i]==0) stat[++tot]=i; if (tot==0) {printf("%d",n); return 0;} topsort(); for (int i=1; i<=n; i++) { if (!b[i]) dfs(i,0); } printf("%d",best); return 0;}/*52 4 2 3 13*/
阅读全文
0 0
- [NOIP2015]信息传递
- [noip2015] 信息传递
- 【NOIP2015】信息传递
- Noip2015 D1T2信息传递
- 【NOIP2015】Day1T2 信息传递
- noip2015 信息传递
- NOIP2015信息传递
- 【NOIP2015】信息传递 dfs
- NOIP2015信息传递
- NOIP2015 信息传递
- [Noip2015] 信息传递
- [noip2015]信息传递 题解
- 【noip2015】信息传递
- [NOIP2015] 信息传递 D1 T2
- 【NOIP2015】洛谷2661 信息传递
- NOIp2015 提高组 信息传递
- [NOIP2015]Day1 T2 信息传递
- UOJ 146 【NOIP2015】信息传递
- 为什么XGBoost在机器学习竞赛中表现如此卓越?
- 如何使用TensorFlow和VAE模型生成手写数字
- 又一员大将离开马斯克的OpenAI自立门户,称工业机器人市场大有可为
- Waymo全自动驾驶汽车上路测试,不久后你可以租辆无人车通勤、跑腿儿了
- 斯坦福大学秋季课程《深度学习理论》STATS 385开讲
- 【noip2015】信息传递
- spring boot
- 018 含参方程组习题及公共解理论
- CodeForces-884C
- Xcode9学习笔记46
- Spring
- python import、datetime获取时间及转换
- 打造Android万能下拉刷新上拉加载控件
- 【模板】Tarjan