传送门
按照题意模拟就行了。
先拓扑排序去掉不在环上面的点。
剩下的都是简单环了。
于是都dfsdfsdfs一遍求出最短的环就行。
代码:

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int n,du[N],nxt[N],ans=0x3f3f3f3f;
bool vis[N];
inline int dfs(int p,int len){if(vis[p])return len;vis[p]=1;return dfs(nxt[p],len+1);
}
inline int read(){int ans=0;char ch=getchar();while(!isdigit(ch))ch=getchar();while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();return ans;
}
int main(){queue<int>q;n=read();for(int i=1;i<=n;++i)++du[nxt[i]=read()];for(int i=1;i<=n;++i)if(!du[i])q.push(i);while(!q.empty()){int x=q.front();q.pop(),vis[x]=1;--du[nxt[x]];if(!du[nxt[x]])q.push(nxt[x]);}for(int i=1;i<=n;++i)if(!vis[i])ans=min(ans,dfs(i,0));cout<<ans;return 0;
}

转载于:https://www.cnblogs.com/ldxcaicai/p/10084768.html

2018.11.02 洛谷P2661 信息传递(拓扑排序+搜索)相关推荐

  1. [NOIP2015] 提高组 洛谷P2661 信息传递

    题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...

  2. 2019年东莞特长生 游戏(洛谷 P2661 信息传递)

    Description 某校科技节到了,有? 个同学(编号为1到?)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为? 的同学的信息传递对象是编号为??的同学. 游戏开始 ...

  3. 洛谷2661 信息传递 三倍经验?

    问题描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...

  4. P3387 【模板】缩点 洛谷 java题解 连通图+拓扑排序

    传送门: P3387 [模板]缩点 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P3387 问题分析 首先为了节省 ...

  5. 2018.11.04 洛谷P1081 开车旅行(倍增)

    传送门 思路简单码量超凡? 感觉看完题大家应该都知道是倍增sbsbsb题了吧. 首先预处理出从每个点出发如果是AAA走到哪个点,如果是BBB走到哪个点. 然后利用刚刚预处理出的信息再预处理从每个点出发 ...

  6. 洛谷P1983 车站分级 拓扑排序

    题目链接:https://www.luogu.com.cn/problem/P1983 此题是用拓扑排序求层数,将等级高的点连向等级的点,连成的图用拓扑排序看一下多少层,即答案. 代码如下 #incl ...

  7. 信息学奥赛一本通 1855:【09NOIP提高组】潜伏者 | OpenJudge NOI 1.7 11:潜伏者 | 洛谷 P1071 [NOIP2009 提高组] 潜伏者

    [题目链接] ybt 1855:[09NOIP提高组]潜伏者 OpenJudge NOI 1.7 11:潜伏者 洛谷 P1071 [NOIP2009 提高组] 潜伏者 [题目考点] 1. 字符串 2. ...

  8. AC日记——信息传递 洛谷 P2661 (tarjan求环)

    题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...

  9. tg2015 信息传递 (洛谷p2661)

    题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...

最新文章

  1. Django1.11 扩展User属性增加头像上传功能
  2. 实战KVM|kvm安装|创建linux|控制台|克隆
  3. linux 内核3.1,NVIDIA发布了新的Tegra Linux开发包,内核为3.1.x
  4. 分数等级_志愿填报丨填报公办普通高中志愿,分数成绩和等级成绩均需关注
  5. tableau实战系列(四十六)-如何用Tableau实现动态报表?​某咖啡店的销售数据报表(看板)​
  6. python匿名函数调用_python3笔记十六:python匿名函数和高阶函数
  7. php中间值,比较当前值和下一个值,并在中间推送数组(Adodb)PHP
  8. VTK:Actor边缘颜色用法实战
  9. Java中的命名参数
  10. java nodefilter类,Java Servlet Filter过滤器概述
  11. RISC 和 CISC 区别
  12. Objective-C Fast Enumeration 的实现原理
  13. Excel 在某一列中寻找最大值并加粗
  14. 9.4SAS软件入门
  15. 进销存excel_Excel教程:教大家做简单的进销存
  16. 【渝粤题库】陕西师范大学292141政府规制经济学作业(专升本)
  17. kettle 在Linux下执行kjb
  18. html中文网app,app.vue什么作用?
  19. 成年男性如何挑选衣服
  20. Live800:全渠道智能客服系统,助力企业打造全渠道客户中心

热门文章

  1. java类和对象数组传参_Java 练习(替换数组元素, 将对象作为参数传递给方法)
  2. python和c混编_python与C、C++混编的四种方式(小结)
  3. 阿里云java面试_20个高级Java面试题汇总
  4. 假设以邻接矩阵作为图的存储结构_学习数据结构第五章:图(图的存储方法)...
  5. delphi 获取数组长度_C++可变长的数组,老司机手把手教你实现!
  6. 易语言怎么判断文件是否一样_怎么判断自己是否怀孕?
  7. 与数据库服务器通讯协议出错,与数据库服务器通讯异常
  8. mysql sql长度限制_SQL限制– MySQL限制
  9. android rss_Android RSS阅读器应用程序
  10. jms架构_JMS架构和JMS API架构