P2661 信息传递(tarjan求强连通分量模板题)

2023-10-27

//minn为最小强连通分量的点数 
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+5;
vector<int> v[maxn];
int dfn[maxn];
int low[maxn];
int cnt=0;
int vis[maxn]; //1表示在栈中
stack<int> s;
int minn=0x3f3f3f3f;
 
void tarjan(int a)
{
	s.push(a);
	vis[a]=1;
	dfn[a]=low[a]=++cnt;
	for(int i=0;i<v[a].size();i++)
	{
		int e=v[a][i];
		if(dfn[e]==0) //该点还没被访问过
		{
			tarjan(e);
			low[a]=min(low[a],low[e]);
		} 
		else if(vis[e]==1) //被访问过且还在栈中
		{
			low[a]=min(low[a],dfn[e]);
		} 
	}
	if(dfn[a]==low[a]) //你属于一个强连通分量里 
	{
		int ans=0; //记录你的这个强连通分量里的点数
		while(1)
		{
			int t=s.top();
			s.pop();
			vis[t]=0;
			ans++;
			if(t==a)
				break;
		} 
		if(ans!=1)  //因为你自己一个点的强连通不符合题意 
			minn=min(minn,ans);
	}
}
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int e;
		scanf("%d",&e);
		v[i].push_back(e);
	}
	for(int i=1;i<=n;i++){
		if(!dfn[i]) tarjan(i);
	} 
	cout<<minn;
	return 0;
} 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

P2661 信息传递(tarjan求强连通分量模板题) 的相关文章

  • vue3.0 + Ts v-model在自定义组件上的使用教程

    前言 之前在vue2 0版本介绍v model在组件上的使用教程时详细介绍了vue3 0 v model相比于2 0的变化 本篇文章主要介绍一下vue3 0的使用教程 如何使用 第一步 index vue作为父组件 这里采用了vant框架
  • Centos7.9 安装Openstack Train版 详细手把手每一步搭建

    1 升级内核 先准备两台机器 我这里准备的是2台 32G 16核 500G硬盘的服务器 一台作为master 一台作为计算节点机器 master 机器有两个网卡 一个是ip 10 10 162 38 另一个网卡和10 10 162 38是同
  • 攻防演练场景中面临的常见加密威胁-SSH隧道工具sish

    工具介绍 sish是一个开源的反向代理工具 通过在公共的端点和本地运行的服务器之间建立一个安全的ssh通道 该工具的功能是将内网端口暴露在公网上 该工具部署在公网中 本地无需安装 无需注册 支持转发的协议有HTTP S WS S TCP 优

随机推荐

  • python中%符号详解

    python中 符号详解 a 星期几的简写 A 星期几的全称 b 月分的简写 B 月份的全称 c 标准的日期的时间串 C 年份的后两位数字 d 十进制表示的每月的第几天 D 月 天 年 e 在两字符域中 十进制表示的每月的第几天 F 年 月
  • Webpack之image

    CSS中的图片处理 直接从外部引入css的背景等图片是打包不出来的 需要用到url loader和file loader file loader 解决引用路径的问题 file loader可以解析项目中的url引入 不仅限于css 根据我们
  • 双指针的实践

    一 双指针的一般解法 双指针指的是在遍历对象的过程中 不是普通的使用单个指针进行访问 而是使用两个相同方向 快慢指针 或者相反方向 对撞指针 的指针进行扫描 从而达到相应的目的 它只是一种算法技巧 二 26题 删除有序数组中的重复项 2 1
  • OpenGL实现通用GPU计算概述

    可能比较早一点做GPU计算的开发人员会对OpenGL做通用GPU计算 随着GPU计算技术的兴起 越来越多的技术出现 比如OpenCL CUDA OpenAcc等 这些都是专门用来做并行计算的标准或者说接口 OpenGL用来做通用GPU计算主
  • Lora模块的定向传输

    原子哥的 两个LORA模块工作在一般模式定向传输数据的测试方法 使用上位机测试 OpenEdv 开源电子网 1 准备两LORA模块和两USB转TTL电路 2 ATK LORA 01配置软件 模块A占用COM10 模块B占用COM22 端口号
  • vue3实现mapbox鼠标定位显示经纬度

    vue3实现鼠标定位显示经纬度 leafletMap on mousemove function e var location leafletMap queryRenderedFeatures e point document getEle
  • c#基础知识---匿名方法

    我们已经提到过 委托是用于引用与其具有相同标签的方法 换句话说 您可以使用委托对象调用可由委托引用的方法 匿名方法 Anonymous methods 提供了一种传递代码块作为委托参数的技术 匿名方法是没有名称只有主体的方法 在匿名方法中您
  • Linux学习笔记——Linux命令行使用技巧

    目录 一 前言 二 Linux是什么 三 关于shell的使用 1 shell命令行提示符 2 shell打开方式 1 右键打开 此方式打开的shell在当前用户的桌面上 2 Application gt System tools gt t
  • Linux系统命令 - 查看内存使用情况

    一 查看内存使用情况 在Linux系统中 大部分操作都通过命令行来完成 因为大部分情况下不开启图形界面 在服务器环境 则只能通过shell执行操作 下面介绍查看内存使用情况的相关命令 包括物理内存 RAM 和交换内存 swap 我们经常需要
  • 前端面试总结之CSS

    文章目录 1 BFC 块级格式化上下文 重点关注 2 CSS盒子模型 3 清除浮动 4 隐藏元素的方法及各自的特点 5 line height和heigh区别 6 用CSS画三角形 7 圣杯布局 三栏布局方式两边固定中间自适应 与双飞翼布局
  • CGAL几何库配置教程

    1 下载源码 进入CGAL官网 下载源码压缩包 GMP库和MPFR库 图1 官方配置教程如图2所示 可供参考 图2 要下载的文件如图3所示
  • 机器学习之决策树

    http t csdn cn 2sWSP决策树 http t csdn cn NdlCs next and iter 函数 http t csdn cn tRN4I sort values and value counts 函数 http
  • Python往excel表格里面插入图片并控制图片的大小

    coding UTF 8 import xlrd import xlwt import requests import json import xlsxwriter from xlutils copy import copy import
  • 【课程设计】数据库:火车票管理系统

    课程设计 数据库 火车票管理系统 摘要 本文主要介绍了火车票管理系统 其中包括其选题功能概述 对该系统的方案方法设计 以及过程实现等内容 由于系统的代码量较大 因此将会较为抽象地对思想进行介绍 在必要时会举出一些实例 还会附上成果展示以及安
  • 线程池创建类ThreadPoolExecutor介绍

    ThreadPoolExecutor 使用给定的初始参数和默认线程工厂和拒绝的执行处理程序创建一个新的线程池执行器 一 构造方法参数说明 有四个构造方法 最终都是调用构造方法四 构造方法参数说明 param corePoolSize 保留在
  • APK反编译

    一 需要的工具 apktool 反编译APK文件 得到classes dex文件 同时也能获取到资源文件以及布局文件 下载地址 dex2jar 将反编译后的classes dex文件转化为 jar文件 下载地址 jd gui 用于查看 ja
  • 嵌入式C语言总结

    GCC知识梳理 Q GCC是什么 GCC最初名称 GNU C Compiler 随着其支持的语言越来越多 改称为 GNU Compiler Collection 作用 将编程高级语言翻译为机器语言 Q C语言变成机器指令的过程 gcc 根据
  • web开发-高德地图api2.0-点聚合-包含设置非聚合点的事件绑定以及样式

    web开发 高德地图api2 0 点聚合 包含设置非聚合点的事件绑定以及样式 下面展示一些 内联代码片 非聚合点数据 lnglat里的坐标不一定要双引号 var points weight 8 lnglat 108 939621 34 34
  • Monitoring(监控)

    Monitoring and Instrumentation 有几种方法可以监控Spark应用程序 Web UI 指标和外部检测 Web Interfaces 默认情况下 每个SparkContext都会在端口4040上启动Web UI 以
  • P2661 信息传递(tarjan求强连通分量模板题)

    minn为最小强连通分量的点数 include