http://uoj.ac/problem/146

题解:强连通分量 tarjan模板题。同时试了一下codeblock

#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+;
vector<int> E[maxn];
int dfn[maxn],low[maxn],tot,n,ans=maxn,vis[maxn];
stack<int> S;
void tarjan(int x){
low[x]=dfn[x]=++tot;
S.push(x);vis[x]=;
for(int i=;i<E[x].size();i++){
int v=E[x][i];
if(!dfn[v]){
tarjan(v);
low[x]=min(low[x],low[v]); }else if(vis[x]){
low[x]=min(low[x],dfn[v]);
}
}
if(low[x]==dfn[x]){
int cnt=;
while(){
int now=S.top();
S.pop();
vis[x]=;
cnt++;
if(now==x)break;
}
if(cnt>)ans=min(ans,cnt);
}
}
int main(){
cin>>n;
for(int i=;i<=n;i++){
int x;
scanf("%d",&x);
E[i].push_back(x);
}
for(int i=;i<=n;i++){
if(!dfn[i])tarjan(i); }
cout<<ans<<endl;
}

UOJ #146. 【NOIP2015】信息传递 连通分量 tarjan模板题的更多相关文章

  1. LOJ2421 NOIP2015 信息传递 【tarjan求最小环】

    LOJ2421 NOIP2015 信息传递 LINK 题目大意就是给你一个有向图,求最小环 有一个很奇妙的性质叫做每个点只有一条出边 然后我们考虑对每个强联通分量进行考虑 发现每个强联通分量内的边数一 ...

  2. p2661 信息传递(Tarjan模板)

    传送门 题目 有 nnn 个同学(编号为 111 到 nnn )正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为 iii 的同学的信息传递对象是编号为 TiT_iTi​ ...

  3. 信息传递(tarjan)

    信息传递 http://uoj.ac/problem/146 有 n 个同学(编号为 1 到n )正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为 i的同学的信息传递对象 ...

  4. [NOIP2015]信息传递

    [NOIP2015]信息传递[问题描述]有

  5. POJ 2186:Popular Cows Tarjan模板题

    Popular Cows Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 25945   Accepted: 10612 De ...

  6. codevs4511信息传递(Tarjan求环)

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

  7. [并查集][NOIP2015]信息传递

    信息传递 题目描述 有 N 个同学( 编号为 1 到 N) 正在玩一个信息传递的游戏. 在游戏里每人都有一个固定的信息传递对象, 其中,编号为i的同学的信息传递对象是编号为ti的同学. 游戏开始时, ...

  8. [vijos]P1979 NOIP2015 信息传递

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

  9. 2105. [NOIP2015] 信息传递

    ★☆   输入文件:2015message.in   输出文件:2015message.out   简单对比 时间限制:1 s   内存限制:256 MB [题目描述] 有n个同学(编号为1到n)正在 ...

随机推荐

  1. css媒体查询移动优先和pc优先

    移动优先,默认你是用手机浏览该网页的,当你用pc浏览时,就会以min-width进行递增式媒体查询 <!DOCTYPE html> <html lang="en" ...

  2. iOS 严重问题解释(crash)

    问题1:Exception Type: 00000020 Exception Codes: 0x000000008badf00d Exception Note: SIMULATED (this is  ...

  3. vux (scroller)上拉刷新、下拉加载更多

    1)比较关键的地方是要在 scroller 组件上里加一个 ref 属性 <scroller :lockX=true height="-170" :pulldown-conf ...

  4. 【代码审计】MIPCMS 远程写入配置文件Getshell

    0x00 环境准备 MIPCMS官网:https://www.mipcms.cn 网站源码版本:MIPCMS内容管理系统 V3.1.0(发布时间:2018-01-01) 程序源码下载:http://w ...

  5. Docker 仓库管理

    仓库 ( registry ) 是一个用来存放镜像的地方,当我们执行 docker pull centos 去拉取 centos 镜像时,默认是从 Docker Hub 这个公共仓库来拉取的: 对于企 ...

  6. Python中执行外部命令

    有很多需求需要在Python中执行shell命令.启动子进程,并捕获命令的输出和退出状态码,类似于Java中的Runtime类库. subprocess模块的使用: Python使用最广泛的是标准库的 ...

  7. PyQt4显示提示信息

    我们可以为任何窗口部件设置一个气球提示. #!/usr/bin/python # -*- coding:utf-8 -*- import sys from PyQt4 import QtGui fro ...

  8. iOS - UITextView实现placeHolder占位文字

      iOS之UITextView实现placeHolder占位文字的N种方法 前言 iOS开发中,UITextField和UITextView是最常用的文本接受类和文本展示类的控件.UITextFie ...

  9. spring applicationContext.xml 配置文件 详解

      <?xml version="1.0" encoding="UTF-8"?>   <beans xmlns="http://ww ...

  10. IOS多线程之线程属性的配置

    版权声明:原创作品,谢绝转载!否则将追究法律责任.   设置线程堆栈的大小: 系统为每个你新创建的线程,都会为你的进程空间分配一定的内存作为该线程的堆栈.这里面有我们局部变量声明我们的方法就是一个堆栈 ...