`
digiter
  • 浏览: 121849 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

zju1119 SPF

    博客分类:
  • ICPC
阅读更多
终于写好无向图找割点了,笔记一下

割点的充分必要条件是
1. 对于dfs搜索树的根,有至少两个子树
2. 对于非dfs树的根,有至少一个子树

p.s.其实这两个条件是一样的,因为对于非根节点,有一条边连到父节点,所以把它看成是树根的时候,就有至少两个子树了

#include <cstdio>
#include <cstring>
#include <vector>
#include <set>
#include <stack>
using namespace std;

vector<vector<int> > g;
set<int> node;

vector<int> dfn, low, sub;
int cnt;
void dfs(int u)
{
	dfn[u] = low[u] = cnt++;
	for (int i = 0; i < g[u].size(); ++i)
	{
		int v = g[u][i];
		if (dfn[v] == -1) {
			dfs(v);
			low[u] = min(low[u], low[v]);
			if (dfn[u] <= low[v])
				++sub[u];
		} else {
			low[u] = min(low[u], dfn[v]);
		}
	}
}

int main()
{
	int tcs = 1, u, v;
	while (true)
	{
		g.clear();
		node.clear();
		bool read = false;
		while (scanf("%d", &u), u != 0)
		{
			read = true;
			scanf("%d", &v);
			int t = max(u, v) + 1;
			t = max((int)g.size(), t);
			g.resize(t);
			g[u].push_back(v);
			g[v].push_back(u);
			node.insert(u);
			node.insert(v);
		}
		if (!read)
			break;
			
		dfn.assign(g.size(), -1);
		low.assign(g.size(), 0);
		sub.assign(g.size(), 0);
		cnt = 0;
		int root = *node.begin();
		dfs(root);
		--sub[root];
		if (tcs > 1)
			printf("\n");
		printf("Network #%d\n", tcs++);
		bool has = false;
		for (int i = 0; i < g.size(); ++i)
			if (sub[i] >= 1)
			{
				has = true;
				printf("  SPF node %d leaves %d subnets\n", i, sub[i] + 1);
			}
		if (!has)
			printf("  No SPF nodes\n");
	}
	
	return 0;
}

分享到:
评论

相关推荐

    zju.rar_ZJU_zju.rar_zju2104.cpp

    【标题】"zju.rar_ZJU_zju.rar_zju2104.cpp" 提供的信息显示,这可能是一个与浙江大学(Zhejiang University,简称ZJU)相关的编程资源包。"zju2104.cpp" 文件名暗示这可能是针对浙大某次课程或竞赛的C++代码,编号...

    zju1001-1399的数据

    标题“zju1001-1399的数据”暗示了这是一系列与浙江大学(Zhejiang University,简称ZJU)相关的编程题目或测试数据。这些数据可能被用于计算机科学竞赛、在线判题系统(如POJ、ZOJ等)或者是浙江大学计算机课程的...

    zju.rar_zju 31_zju2104.cpp

    【标题】"zju.rar_zju 31_zju2104.cpp" 指的是一个压缩包文件,其中包含了解决浙江大学(zju.edu.cn)在线编程平台上的问题的C++源代码。这个文件可能是一个参赛者或学习者提交的解决方案,用于处理特定的算法或编程...

    zju1025.rar_ZJU_acm zju 10_pid_sticks_zju 1025

    【标题】"ZJU1025 Wooden Sticks" 是浙江大学(Zhejiang University,简称ZJU)在线编程竞赛平台ACM上的一道题目,编号为1025。这道题目主要考察参赛者的算法设计和实现能力,属于计算机科学中的经典问题。 【描述...

    acm新手必备 浙大acm解答 代码库 zoj zju

    【标题】"acm新手必备 浙大acm解答 代码库 zoj zju" 提供的信息表明,这个压缩包包含的是ACM竞赛相关的代码,主要来自浙江大学(Zhejiang University,简称ZJU)的在线算法竞赛平台ZOJ(Zhejiang Online Judge)。...

    zju700代码 浙大oj代码

    【标题】"zju700代码 浙大oj代码" 涉及的主要知识点是浙江大学(Zhejiang University,简称ZJU)在线评测系统ZOJ(Zhejiang Online Judge)中的编程题目解决方案。ZOJ是为ACM/ICPC(国际大学生程序设计竞赛)训练而...

    ZJU OS slide 2

    根据提供的文件信息,这份文档是浙江大学操作系统课程的讲义,属于第2章的内容,教材则是被称为“操作系统的恐龙书”的资料。该讲义涉及的主题包括操作系统服务、用户操作系统界面、系统调用、系统程序、操作系统...

    zju电机学作业.pdf

    zju电机学作业.pdf

    zju1048.rar_acm.zju.edu._pid_show_zju acm

    【标题】"zju1048.rar_acm.zju.edu._pid_show_zju acm" 指向的是一个与浙江大学(Zhejiang University,简称ZJU) ACM竞赛相关的压缩文件,其中包含了对问题1048 "Financial Management"的解答。"acm.zju.edu." 和 ...

    ZJU/zoj 题库上的部分题源码

    【标题】"ZJU/zoj 题库上的部分题源码"涉及的知识点主要集中在ACM(国际大学生程序设计竞赛)编程领域,尤其是浙江大学(ZJU)ZOJ(Zhejiang University Online Judge)题库中的题目解决方案。ZOJ是一个在线编程评测...

    acm zju 额度cn

    acm zju 额度cnacm zju 额度cnacm zju 额度cnacm zju 额度cnacm zju 额度cn

    zoj 1140-zju 2433 简单题的部分答案

    标题 "zoj 1140-zju 2433 简单题的部分答案" 暗示了这是一个关于编程竞赛题目的解答集合,其中涵盖了ZOJ(浙江大学在线评测系统)上的两道题目——ZOJ 1140 和 ZJU 2433。这些题目可能属于算法或数据结构的范畴,...

    Leader统帅BCD-411WLLF4D5ZJU1冰箱说明书.pdf

    在此,我们将深入探讨Leader统帅BCD-411WLLF4D5ZJU1冰箱说明书中的重点内容,为用户全面了解和正确使用这款冰箱提供详细的指导。 首先,Leader统帅BCD-411WLLF4D5ZJU1冰箱是一款家用电冰箱,它被设计成可以适应多种...

    zju部分 解题报告zju部分 解题报告

    【标题】:“浙江大学(ZJU)编程竞赛解题报告” 【内容】: 浙江大学(ZJU)在编程竞赛领域有着丰富的活动,这些比赛通常包括ACM/ICPC(国际大学生程序设计竞赛)、ZOJ(浙大在线评测系统)等平台上的题目。解题...

    zju 1642 Match for Bonus DP

    zju 1642 Match for Bonus DP,滚存??zju 1642 Match for Bonus DP,滚存??zju 1642 Match for Bonus DP,滚存??zju 1642 Match for Bonus DP,滚存??zju 1642 Match for Bonus DP,滚存??

    QSCTech#zju-icicles#考点1

    2、课后作业题6.8 3、Minimax 给一个只有叶子节点值的图 叉掉α-β pruning 4、贝叶斯网络 5、Markov Network 给一个Mark

    ZJU_数据库原理大程——图书管理系统

    《ZJU数据库原理大程——图书管理系统》是浙江大学数据库原理课程的一个实践项目,旨在让学生深入理解数据库在实际应用中的工作原理,特别是如何利用数据库技术构建一个完整的图书管理系统。在这个项目中,学生需要...

    zju题目与解答集合

    zju题目与解答集合,学习ACM编程不可多得的好东西。

    zju动态规划试题选集

    浙江大学(Zhejiang University,简称ZJU)的在线判题系统ZOJ(Zhejiang Online Judge)汇集了大量的编程竞赛题目,其中动态规划题目是众多参赛者提升技能的重要资源。 本压缩包“zju动态规划试题选集”包含了ZOJ上...

    ZJU_V1.2.10.apk

    ZJU_V1.2.10.apk

Global site tag (gtag.js) - Google Analytics