NOIP 2015 d1t2 信息传递
有n个同学(编号为1到n)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学。
游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得知自己的生日时,游戏结束。请问该游戏一共可以进行几轮?
分析:把题往图上转化,发现是每个点只有一个出边的有向图,要找到里边最小的一个环。最初的思路是先拓扑排序,去掉没用的点,再每个点dfs一遍加上标记就可以了。
但随即发现这个拓扑排序不太好写,一不小心就会超时,毕竟有50万个点。
仔细想想,发现根本不需要先去点,只要每次dfs时打两个标记,一个记录当前点是否搜过以及搜到的时间戳,另一个则记录是否是在同一个点dfs时找到的环。复杂度O(n),
可以过但不知道为什么实际测的时候跑得比预期慢,最慢的一个点有500ms。
#include<iostream>
#include<cstring>
using namespace std;
int n;
int a[500010];
int v[500010];
int u[500010];
int maxx;
int now;
void dfs(int x,int z)
{if(v[x]!=0){if(u[x]==now) maxx=min(maxx,z-v[x]);return ;}u[x]=now;v[x]=z;dfs(a[x],z+1);return ;
}
int main()
{maxx=0x3fffffff;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){now=i;if(v[i]==0){u[i]=now;v[i]=1; dfs(a[i],2);}}cout<<maxx;return 0;
}
NOIP 2015 d1t2 信息传递相关推荐
- 2015 NOIP day2 t2 信息传递 tarjan
信息传递 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.luogu.org/problem/show?pid=2661 Descrip ...
- NOIP 2015 D1 T2 信息传递
趁着我还活在网上 多写点题解 * NOIP 2015 D1 T2 信息传递* 2996: [NOIP2015]信息传递 D1 T2 Time Limit: 1 Sec Memory Limit: 12 ...
- NOIP 2015 蒟蒻做题记录
昨天做了noip 2015 的题.因为之前做过几道,最开始做的很快,也都A了.可是子串斗地主运输计划什么的这些没做过的题还是把我恶心的不行QAQ我这个大蒟蒻还是没有A掉..所以说先写一下应该得到的暴力 ...
- 信息传递(tarjan算法)
信息传递 来源: NOIP 2015 Day1 T2 题目描述: 有个同学(编号为 1 到)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为的同学的信息传递对象是编号为的 ...
- 从信息传递的视角看因果关系
来源:混沌巡洋舰 因果推断让大数据更有温度在六种看待因果关系的视角(机制,反事实,干预,过程,信息传递及概率因果)中,信息传递是潜在应用最广泛的一种.当我们想弄清楚是什么导致某件事情发生时,如果由于伦 ...
- 前后端分离 获取用户ip_前后端分离应用——用户信息传递
前言 记录前后端分离的系统应用下应用场景----用户信息传递 需求缘起 照例先看看web系统的一张经典架构图,这张图参考自网络: 在 Dubbo 自定义异常,你是怎么处理的? 中已经对该架构做了简单说 ...
- NOIP2015提高组 信息传递(图论)
[问题描述] 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后 ...
- AC日记——信息传递 洛谷 P2661 (tarjan求环)
题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...
- [NOIP 2015]运输计划-[树上差分+二分答案]-解题报告
[NOIP 2015]运输计划 题面: A[NOIP2015 Day2]运输计划 时间限制 : 20000 MS 空间限制 : 262144 KB 问题描述 公元 2044 年,人类进入了宇宙纪元. ...
最新文章
- 无刷新提交表单(非Ajax实现)
- centos pptp+l2tp+radius+mysql+tc限速,安装配置
- 110. Balanced Binary Tree
- xp系统如何使两台计算机共享,xp系统共享文件,两部电脑共享文件方法
- span标签居中显示的正确方法
- [转载] 深层复制构造函数和浅层复制构造函数区别
- side-by-side
- 【新番尝鲜】玛利亚狂热--百合VS伪娘之战
- Win7-64bit下MapX的安装和使用
- base64原理解析
- [黑苹果]简单修改FB实现显存增加至2048MB修复某些花屏
- kong翻译_最全的中国姓氏英文说法,你知道自己的姓氏怎么翻译吗?
- 懒虫读诗 (树形dp+分组背包)
- error An unexpected error occurred: “EPERM: operation not permitted, unlink ‘C:\\Users
- 使用formality的技巧
- 麻将判断几步入听算法
- 基克的聚合 机器人_LOL:基克的聚合是否只适合硬辅们,软辅们能否借它发挥?...
- java socket 拒绝链接_ConnectException:连接被拒绝
- 【转】“百度被黑” 分析师认为不亚于制造“911事件”
- 购买mysql服务器时需要考虑的问题