【题解】洛谷P3225 矿场搭建(割点 tarjan)

金蝶云星空应用开发初级考试题目汇总 摘要:本文为金蝶云星空应用开发初级考试题目汇总 阅读详情

https://www.luogu.org/blog/cjyyb/solution-p3225

思路还是比较好理解的,不过实现起来挺复杂。。。

虽然数据水 但还是注意初始化别搞错了。。我的Cut数组初始化为0时sizeof写的是cut,看了半天没找出来。。。

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#define ll long long
using namespace std;
const int maxn=610;
int dfn[maxn],low[maxn],color[maxn];
bool Cut[maxn];
ll head[maxn],nnext[maxn*4],to[maxn*4];
int tot;
ll num,cut,id,n,m,rs,root,ans1,ans2,group,Case;
void add(ll x,ll y)
{
	tot++;
	nnext[tot]=head[x];
	head[x]=tot;
	to[tot]=y;
}
void ycl()
{
	memset(Cut,0,sizeof(Cut));
	memset(head,0,sizeof(head));
	memset(dfn,0,sizeof(dfn));
	memset(low,0,sizeof(low));
	memset(color,0,sizeof(color));
	ans1=group=n=tot=id=0;
	ans2=1;
}
void tarjan(int x,int fa)
{
	dfn[x]=low[x]=++id;
	for(int i=head[x];i;i=nnext[i])
	{
		int y=to[i];
		if(dfn[y]==0)
		{
			tarjan(y,x);
			if(y==fa) continue;
			low[x]=min(low[x],low[y]);
			if(low[y]>=dfn[x])
			{
				if(x!=root) Cut[x]=true;
				else rs++;
			}
		}
		else
		{
			low[x]=min(low[x],low[y]);
		}
	}
}
void dfs(int x)
{
	color[x]=group;
	num++;
	for(int i=head[x];i;i=nnext[i])
	{
		int y=to[i];
		if(Cut[y]&&color[y]!=group)
		{
			cut++;
			color[y]=group;
		}
		if(!color[y]) dfs(y);
	}
}
int main()
{
	Case=1;
	ll x,y;
	while(cin>>m&&m)
	{
		
		ycl();
		for(int i=1;i<=m;i++)
		{
			
			cin>>x>>y;
			add(x,y);
			add(y,x);
			n=max(n,x);
			n=max(n,y);
		}
		for(int i=1;i<=n;i++)
		{
			if(!dfn[i])
			{
				root=i;
				rs=0;
				tarjan(i,i);
				if(rs>=2) Cut[i]=true;
			}
		}
		for(int i=1;i<=n;i++)
		{
			if(!color[i]&&!Cut[i])
			{
				++group;
				num=cut=0;
				dfs(i);
				
				if(cut==0)
				{
					ans1+=2;
					ans2*=(num-1)*num/2; 
				}
				if(cut==1)
				{
					ans1+=1;
					ans2*=num;
				}
				if(cut>=2)
				{
					;
				}
			}
		}
		cout<<"Case "<<Case++<<": "<<ans1<<" "<<ans2<<endl;
	}
	return 0;
}

 

亚马逊广告接口 amazon advertising 亚马逊广告接口官方说明:https://advertising.amazon.com/API/docs/en-us/setting-up/account-setup 一:注册aws开发者账号 注册地址:https://developer.amazon.com 二:填写注册资料 三:进入控制台,生成安全配置文件 进入 Login with Amazon 菜单: 创建配置文件: 四:申请广告接入权限 申请地址:https://advertising.amazon.com/zh-cn/about-api 阅读详情

相关推荐

Pikachu靶场环境搭建(Windows环境下安装详细教程)

Pikachu靶场是一个漏洞测试练习平台。其中包含了常见的web安全漏洞,如果你是一个渗透测试学习者没有靶场的练手,那么pikachu是一个很好的测试平台。

weixin_42857656的博客 1823

洛谷 P3225 [HNOI2012]矿场搭建

割点,缩点

engineoid的博客 248

PCL读取点云数据报错:Failed to find match for field ‘x‘/ ‘y‘/ ‘z‘.

原因:使用matlab生成的pcd文件,点云数据是双精度类型,pcl处理的点云数据是单精度类型。解决方案:使用matlab生成的点云坐标单精度化,然后在生成点云加以存储。

little_white138的博客 869

信息学奥赛一本通 1521:【 例 2】矿场搭建 | 洛谷 P3225 [HNOI2012] 矿场搭建

对于有两个或两个以上的点双连通分量(就是树中的“分支”顶点),无论哪一个顶点坍塌,该点双连通分量中的顶点都可以通过一条路径走到一个 只有一个割点的点双连通分量(“叶子”顶点)中的出口。对于只有一个割点的点双连通分量(就是树中的“叶子”顶点),该点双连通分量中割点以外的顶点中其中必须设一个出口,否则当割点坍塌时,该点双连通分量中的顶点无法找到一条通往出口的路径。该题问的是:最少选择几个顶点,可以使得在图中删掉任意顶点后,其余顶点都至少有一条已选择顶点的路径,同时求选择顶点的方案数。选择一些顶点作为救援出口。

君义NOIP的博客 1093

远程桌面(RDP)共享USB设备全攻略:不止Hyper-V,你的加密狗和CH340串口也能远程用

本文详细介绍了远程桌面(RDP)共享USB设备的完整解决方案,包括加密狗和CH340串口设备的远程使用技巧。通过RemoteFX USB重定向技术,用户可以在远程会话中无缝使用本地USB设备,提升工作效率。文章涵盖企业级配置、典型设备实战案例及高级故障排除方法,是远程工作者的实用指南。

weixin_42522964的博客 333

从2D到3D地图开发:手把手教你用Cesium+Three.js实现卫星轨迹可视化(含代码片段)

本文详细介绍了如何结合Cesium与Three.js实现从2D到3D的卫星轨迹可视化。通过对比传统Web GIS框架的局限,阐述了Cesium处理三维地理与轨道数据、Three.js负责高级图形渲染的分工优势,并提供了从环境搭建、坐标同步到动态粒子效果实现的完整代码实战指南。

nut55的博客 672

洛谷-P3225 [HNOI2012]矿场搭建

(有任何问题欢迎留言或私聊 &amp;&amp; 欢迎交流讨论哦 目录 目录 题意:传送门 思路: AC代码: 原题目描述: 题意:传送门  原题目描述在最下面。  m条无向边链接两个矿洞。在某些矿洞设置安全出口,使得无论哪一个点毁坏,所有的工人都能逃到安全出口。求设置的安全出口的最小数量ans1ans1ans1,以及数量方案ans2ans2a...

打过ICPC/CCPC,学习ACM算法,Linux内核,Openharmony,加油努力开心珍惜 429

车载以太网SOMEIP入门必看:从服务发现到事件订阅,一次搞懂三种核心通信模式(附报文实例)

本文深入解析车载以太网SOME/IP的三种核心通信模式:服务发现、方法调用和事件订阅,通过真实报文实例和仿真工具演示,帮助开发者快速掌握这一关键技术。文章特别强调服务发现机制的基础作用,并详细介绍了Request/Response与Fire&Forget两种方法调用模式的应用场景,为智能汽车网络通信开发提供实用指南。

weixin_30955617的博客 111

AcWing 396. 矿场搭建 题解(tarjan割点)

懒得写了,直接照搬大佬的题解。

qiaodxs的博客 190

从零到一:Bioconductor新手入门与R包安装实战

本文详细介绍了Bioconductor在生物信息学中的重要性及其R包安装实战指南。从环境准备到BiocManager的使用,再到常见问题排查,帮助新手快速掌握这一强大工具。特别推荐org.Hs.eg.db等核心工具包,助力基因注释和功能分析,提升研究效率。

weixin_29061041的博客 418

数控系统(CNC)系列:Fanuc 31i-B_(5).基本操作与编程

Fanuc 31i-B 系统使用 G 代码和 M 代码进行编程。G 代码主要用于控制机床的运动,M 代码用于控制辅助功能,如冷却液开关、主轴启动等。G 代码:用于指定机床的运动方式。例如,G00 用于快速定位,G01 用于直线插补,G02 用于顺时针圆弧插补,G03 用于逆时针圆弧插补。M 代码:用于控制机床的辅助功能。例如,M03 用于启动主轴顺时针旋转,M05 用于停止主轴,M08 用于开启冷却液,M09 用于关闭冷却液。

2401_87715305的博客 1766

洛谷 P3225 [HNOI2012]矿场搭建 tarjan 割点 dfs

题目链接: https://www.luogu.org/problem/P3225 参考博客: https://www.luogu.org/blog/cjyyb/solution-p3225 这道题目的思路完全是根据博主所讲,画图模拟每一种情况最终才理解,写出了自己的代码 思路: 1:tarjan求出割点集合 2:割点把原图分为了若干联通块,(去掉割点和割点相连,拆分后的每一个联通子...

aiwo1376301646的博客 226

【数据同化第一期】基本概念介绍

【数据同化第一期】基本概念介绍

WW、forever的博客 1904

【题解】洛谷 P3225 【[HNOI2012]矿场搭建】—— TarJan

【题解】洛谷 P3225 【[HNOI2012]矿场搭建】—— TarJan 前置知识: 这是一道好题 ,包含的知识有——(TarJan求割点,TarJan求点双联通分量,组合数学) 如果你不知道怎么用TarJan求割点请戳这里! 如果你不知道什么是点双联通分量请戳这里! 如果你不知道什么是组合数学? %一下PHenning你就会啦!%%%stO PHenning Orz%%% 题目描述 煤矿...

go_bananas的博客 424

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

洛谷·[HNOI2012]矿场搭建

初见安~这里是传送门:洛谷P3225 题目描述 煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口。 请写一个程序,用来计算至少需要设置几个救援出口,以及不同最少救援出口的设置方案总数。 输入文件有若干...

樱狸✨愿携清风归来处 358

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

洛谷P3225 HNOI2012 矿场搭建

题目描述 煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口。 请写一个程序,用来计算至少需要设置几个救援出口,以及不同最少救援出口的设置方案总数。 输入输出格式 输入格式: 输入文件有若干组数据,每组数据...

weixin_30672295的博客 70

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

tarjan习题题解

tarjan习题 一.割点: 1.模板: 洛谷P3388 【模板】割点(割顶) 题目背景割点 题目描述给出一个n个点,m条边的无向图,求图的割点。 输入输出格式输入格式: 第一行输入n,m 下面m行每行输入x,y;x,y表示x到y有一条边 输出格式: 第一行输出割点个数 第二行按照节点编号从小到大输出节点,用空格隔开 输入输出样例 输入样例#1:6 71 21 31 42...

weixin_34292924的博客 1136

洛谷 3225矿场搭建

一道无向图tarjan的题 大致思路是先找到割点,然后给连通块染色 分三种情况: 如果连通块有一个割点,那么建在哪都行 如果有两个割点那么无需建出口,因为任意一个割点倒塌都可以从另一个割点跑到另一个连通块 如果没有割点的话则无法跑到其他连通块,在除割点的任意两点建两个连通块 #include<iostream> #include<cstdio> ...

120

P3225 [HNOI2012]矿场搭建

链接:https://www.luogu.org/problemnew/show/P3225 题目描述 煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口。 请写一个程序,用来计算至少需要设置几个救援出口,以及...

weixin_30849591的博客 96

洛谷P3225 [HNOI2012]矿场搭建(割点+组合数学)

题目 一篇简单易懂的题解 代码 #include<bits/stdc++.h> using namespace std; const int maxn=2e3+5; const int inf=0x3f3f3f3f; typedef long long ll; struct Edge { int from,to; }; vector<Edge>edges; vector<int>G[maxn]; void add(int from,int to) { ed

子夜的博客 207

洛谷P3225 [HNOI2012]矿场搭建 割点

给出n≤1e3n\leq1e3n≤1e3个点的无向图,你可以在每个点选择放置避难所。然后求问所有的方案满足:1.对于任何一点被破坏,剩下的点能都走到避难所。2.放置避难所的数目最少。 ...

qq_40859782的博客 210

HNOI 2012 矿场搭建 题解

题目传送门 题目大意: 给出一张图,现在让你在某些点上建救援出口,要求在随便一个点坍塌(即被删除)后剩余的点都可以到达一个救援出口,问至少建几个救援出口以及方案数。 题解 很显然能够联想到点双,我们考虑一个点双里面的割点数量: 0个时 说明这个点双与其他的点双之间没有联系,那么这个点双内部至少要建两个救援出口,因为是点双,所以建在哪里都可以,不能只建一个,因为如果恰好是那个点塌了就完了。 1个时 ...

a_forever_dream的博客 478

洛谷 P3225 [HNOI2012]矿场搭建 点双连通分量+组合数学

https://www.luogu.org/problem/P3225 题目描述 煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口。 请写一个程序,用来计算至少需要设置几个救援出口,以及不同最少救援出口的设置方案总...

xiji333的博客 408

[BZOJ 2730][HNOI 2012]矿场搭建(Tarjan求割点与桥+计数问题)

题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=2730思路这篇题解是我一个月之前写的,为了凑齐HNOI 2012 Day1的题解所以又发了一遍,23333注意到点双联通分量的性质:去掉点双中任意一个点,点双中其他点仍然双联通。因此可以发现,在整个图中,一个只含有一个割点的点双联通分量中必须建一个井口,因为若这个点双的割点塌陷,那么这个点双中所

某沙茶的OI代码库 735

洛谷P3225 [HNOI2012]矿场搭建(割点+点双连通分量+组合数学)(点双的两种求法模板)

链接:https://www.luogu.org/problem/P3225 题意:多组样例,有若干个挖煤点,由n条隧道相连。现在要在某些挖煤点修救援出口,使得某个挖煤点倒塌后,其它挖煤点的人可以从救援出口出去。要求的是最少的救援出口数和在保证最少救援出口数的条件下,不同的方案数。(注意,挖煤点的最大编号就是挖煤点的数量,千万不要理解成有n个挖煤点。) 思路:很显然这个题和割点密切相关。先介绍...

birdmanqin的博客 276

BZOJ 2730矿场搭建:割点

题意: 给出一个无向完全图,先在需要在图中选出最少的点,使得满足:删掉任意一个点之后,剩下的点都可以到达至少一个选择的点。求出最少选择的点数,以及选点的方案数。 题解: 显然,本题的描述本质上就是双连通性,即所有点到指定点都是点双连通的。那么考虑原图的割点,如果一个点双只包括一个割点,那么如果删掉了割点,就使得这个点双与原图断开连接,因此这个点双内一定要选出一个点(不能是割点);如果一个点双...

辣鸡葫芦娃 320
上一篇: 【题解】洛谷P1314 聪明的质检员(前缀和 二分 数学)
下一篇: 【题解】洛谷P2939 改造路(最短路 分层图)
Rem_Inory
博客等级 码龄8年 4粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值