hdu3671 Boonie and Clyde Tarjan求割点

《遥感大模型生产级实战:从数据到决策的端到端AI工程》系列第一部分:AI遥感工程师的基础设施与工具链-文章 4:传统遥感分析与机器学习基线 本章将系统性地介绍经典遥感分析工作流,从数据预处理到多维度特征工程,再到如何利用经典的机器学习模型(如随机森林、支持向量机)进行监督与非监督学习。我们将通过一个完整的“智慧农业作物分类”项目实战,展示如何利用我们之前构建的数据湖和工具链,从原始数据到最终的分析结果,构建一个性能可靠、可解释性强的基线系统。更重要的是,我们将深入剖析这种传统方法的局限性,从而为后续章节引入遥感大模型的必要性提供强有力的论证。 阅读详情

Boonie and Clyde

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 773    Accepted Submission(s): 221


Problem Description
As two icons of the Great Depression, Bonnie and Clyde represent the ultimate criminal couple. Stories were written, headlines captured, and films were made about the two bank robbers known as Romeo and Juliet in a getaway car.

The new generation of Bonnie and Clyde is no longer cold-blooded killers with guns. Due to the boom of internet, they turn to online banks and scheme to hack the safety system. The safety system consists of a number of computers connected by bidirectional cables. Since time is limited, they decide that they will attack exactly two computers A and B in the network, and as a result, other computers won't be able to transmit messages via A and B . The attack is considered successful if there are at least two computers (other than A and B ) that disconnected after the attack.

As they want to minimize the risk of being captured, they need to find the easiest way to destroy the safety system. However, a brief study of the network indicates that there are many ways to achieve their objective; therefore they kidnapped the computer expert, you, to help with the calculation. To simplify the problem, you are only asked to tell them how many ways there are to destroy the safety system.
 

Input
There are multiple test cases in the input file. Each test case starts with two integers N (3<=N<=1000) and M (0<=M<=10000) , followed by M lines describing the connections between the N computers. Each line contains two integers A , B (1<=A, B<=N) , which indicates that computer A and B are connected by a bidirectional cable.

There is a blank line between two successive test cases. A single line with N = 0 and M = 0 indicates the end of input file.
 

Output
For each test case, output one integer number representing the ways to destroy the safety system in the format as indicated in the sample output.
 

Sample Input
  
4 4 1 2 2 3 3 4 4 1 7 9 1 2 1 3 2 3 3 4 3 5 4 5 5 6 5 7 6 7 0 0
 

Sample Output
  
Case 1: 2 Case 2: 11
 

Source
 


思路:http://blog.youkuaiyun.com/zjtzyrc/article/details/49075923


#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int N, M, C;
vector<int> G[1000 + 5];
//rem为删掉的第一个点,index用于给节点打时间戳,cnt存一个连通分支内的节点数量
//ans为割点数目
int rem, index, len, ans, root, num[1000 + 5], cnt[1000 + 5], low[1000 + 5], p[1000 + 5];

int tarjan(int v) {
	low[v] = num[v] = ++index;
	int ret = 1, sons = 0;
	for (int i = 0; i < G[v].size(); i++) {
		int w = G[v][i];
		if (w == rem) {  //排除第一个删除的点
			continue;
		}
		if (!num[w]) {
			p[w] = v;
			sons++;
			ret += tarjan(w);
			if (low[w] >= num[v] && v != root) {
				ans++;
			}
			low[v] = min(low[v], low[w]);
		}
		else if (p[v] != w){
			low[v] = min(low[v], num[w]);
		}
	}
	if (sons >= 2 && v == root) {
		ans++;
	}
	return ret;
}

int main()
{
	C = 0;
	while (~scanf("%d%d", &N, &M) && (N || M)) {
		for (int i = 0; i <= N + 3; i++) {
			G[i].clear();
		}
		for (int i = 0; i < M; i++) {
			int u, v;
			scanf("%d%d", &u, &v);
			G[u].push_back(v);
			G[v].push_back(u);
		}
		int res = 0;
		for (int i = 1; i <= N; i++) {  //遍历每一个点
			memset(num, 0, sizeof(num));
			rem = i; index = 0; len = 0; ans = 0;
			for (int j = 1; j <= N; j++) {  //遍历其他非rem的点
				if (j != rem && !num[j]) {  //num[j]为0说明这个连通分支还没算过
					root = j;
					cnt[len++] = tarjan(root);  //len为去掉rem后连通分支数
				}
			}
			if (len >= 3) {  //删掉rem后,原图分为三块或三块以上
				res += N - 1;  //任意找个第二个点都满足
			}
			else if (len == 2) {  //删掉rem后,原图分为两块
				res += N - 1;
				if (cnt[0] == 1) {  //如果其中有一块只有一个节点,情况要减一
					res--;
				}
				if (cnt[1] == 1) {
					res--;
				}
			}
			else if (len == 1) {
				res += ans;  //删掉rem后,原图还是一块(说明删掉的rem不是原图割点,上面两个其实删掉的都是割点)
			}
		}
		printf("Case %d: %d\n", ++C, res / 2);  //res中每种情况算了两边,要除以二
	}
	return 0;
}


手把手教你学PCIE(10.5)--PCIE故障排除方法的分步排查法介绍 通过以上分步排查法,你可以系统地诊断和解决 PCIe 设备的故障。每个步骤都有助于逐步缩小问题范围,最终找到并解决问题。 阅读详情

相关推荐

微信小程序协同工作和发布

微信小程序协同工作和发布

qq_53114527的博客 1620

HDU3671(Boonie and Clyde)

题目传送门                  Boonie and Clyde As two icons of the Great Depression, Bonnie and Clyde represent the ultimate criminal couple. Stories were written, headlines captured, and films were made about the two bank robbers known as Romeo and Juliet in a g

weixin_43808717的博客 253

深度可分离卷积(DepthwiseSeparableConvolution):Depthwise卷积与Pointwise卷积

深度可分离卷积不用多说,在轻量级网络架构方面是一个绕不开的话题,只要接触深度学习多多少少会接触。深度可分离卷积即DepthwiseSeparableConvolution,该卷积将一个常规卷积过程划分成两个完成Depthwise卷积和Pointwise卷积,在保证输出一样时,计算量大大降低。首先来看,一个常规卷积是怎么实现的。其示意图如果我们从通道数变换的角度来看,卷积就是将3通道的tensor变为了4通道的tensor,我们来看看深度可分离卷积是怎么实现通道的变化的。...

xu.hyj 1万+

hdu3671 Bonnie and Clyde 求割点

/*     从一个图当中去掉两个节点使得图不联通的方法有多少种     首先枚举去掉的第一个点,去掉第一个点之后     1. 图已经不连通且分为两块:         a.这两块各含一个节点,此时无法通过再去掉一个点使图不连通;         b.其中一块只含一个节点,另一块有多个节点,此时从含多个结点的块中任取一个搭配去掉的第一个节点,             共有n - 2

jijijix的博客 472

SAE J1850协议:从波形解析到汽车诊断实战

本文深入解析SAE J1850协议在汽车诊断中的应用,重点对比其PWM和VPW两种实现方式的波形特征、帧结构及诊断要点。通过实测案例,详细介绍了如何通过波形分析精准定位通用和福特等美系车型的通信故障,提升汽车电子诊断实战能力。

hill8的博客 965

「免费开源」从 OCR 识别到结构化输出:合同文本高效比对的完整解决方案!

本文将系统拆解这一解决方案的技术逻辑、实施步骤与落地价值,为企业合同管理数字化转型提供实操指南。字段提取:自动识别并提取预设的关键字段(如 “甲方”“乙方”“合同金额”“履约期限” 等),若遇到模糊表述(如 “付款时间为合同签订后 30 个工作日内”),系统可自动解析为 “履约期限:合同签订日 + 30 工作日”;预设结构化字段:根据合同类型(如采购合同、服务合同、租赁合同),定义需提取的关键字段(如 “甲方名称”“乙方名称”“合同金额”“有效期起 / 止日期”“履约地点”“违约金比例” 等);

qxsz_yyh的博客 835

2007 Asia Regional Chengdu(树状数组神题+割点暴力+STL)

A Sequence of NumbersProblem DescriptionYou are given a sequence of N integers (each within the range [0, 2162^{16} - 1] ) along with P operations and in order to solve this problem you need to process

龙崎的专栏 634

STC8H开发(十六): GPIO模拟SPI驱动Ci24R1实现低成本无线遥控

本文详细介绍了如何使用STC8H单片机通过GPIO模拟SPI驱动Ci24R1无线模块,实现低成本无线遥控方案。内容涵盖硬件设计要点、软件驱动开发技巧及实战优化经验,特别适合消费电子产品开发者参考。Ci24R1凭借其高性价比和双模协议支持,成为替代传统nRF24L01+的理想选择。

weixin_30378623的博客 349

The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest

这场比赛我们队做了三题,4033,4034,4039,再多一点点时间4036还可以出的,没时间去看这个题了,赛后稍微想了一下就出了,这几个题在所有题里应该都算是简单题! 我做了4033,还把公式写反了,cos(x)=(a^2+b^2-c^2/(2*a*b),被我写成了cos(x

ysjjovo的专栏 891

【AI黑话日日新】什么是对比学习?

模型效果高度依赖大规模、高质量的人工标注数据。数据标注不仅成本高昂、周期漫长,在医疗、工业、小众垂类等场景中,甚至难以获取足量的标注样本,严重限制了模型的泛化能力与应用边界。自监督学习的出现,为解决这一问题提供了全新思路——无需人工标注标签,而是利用数据自身的结构与内在关联,构建自生成的监督信号完成模型预训练,再通过微调适配下游任务。在众多自监督学习方法中,对比学习(Contrastive Learning)

专注:太空算力、AI infra、异构调度、大模型成本工程 730

使用AutoDL云服务器训练YOLO计算机视觉网络模型(AutoDL+Xftp+VS Code),附详细操作步骤

AutoDL AI算力云是一个提供人工智能算力服务的云平台。丰富的GPU资源:提供多种GPU型号,包括NVIDIA的A100A800L40V100RTX 4090RTX 3090等,能满足我们在不同场景下的需求,无论是进行大规模的AI训练还是复杂的科学计算等任务,都可以找到合适的GPU资源。灵活的付费方式:支持按量付费包日包周包月等多种付费模式。对于短期的实验或不确定时长的项目,可以选择按量付费;如果有长期稳定的算力需求,预付费或包周包月则可能更划算,可以根据自己的需求和预算进行选择。集成主流框架:集成了。

Limiiiing的博客 955

hdu3671 Boonie and Clyde (Tarjan求割点)

http://acm.hdu.edu.cn/showproblem.php?pid=3671题目大意:给定连通无向图,求可行的点对的数量,该点对可以使图在删去该点对后剩下的图中,至少有一对点不连通。Tarjan算法求强连通图的复杂度是O(n),如果直接枚举两个点并且求连通的话,总的复杂度为O(n^3)如果先删去一个点,如果剩下的图分成了二个以上的块,则认为只要删去了这个点,剩下n-1个点无论删去哪个

做题的地方 1153

YOLO26小目标检测实战:STAL标签分配+MuSGD优化,VisDrone数据集漏检率降50%

小目标检测是计算机视觉的经典难题,而VisDrone数据集小目标占比极高:数据集中小目标(像素面积<32×32)占比超过60%,且大量目标仅为几个像素,特征信息极度匮乏;背景复杂且干扰多:无人机航拍场景包含建筑物、树木、人群、车辆等复杂背景,小目标易被背景淹没;尺度变化与遮挡严重:同一目标在不同帧中尺度差异大,且小目标极易被其他目标遮挡;传统模型的固有缺陷标签分配策略(如ATSS、SimOTA)偏向大目标,小目标的正样本分配不足,导致模型对小目标不敏感;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1183

HDU 3671 Boonie and Clyde (tarjan+割点变形)

思路: 此题不是一般的求割点,而是求去掉一对点之后能否让图分开,即割点对(我这造词能力,满分) 对于第一个点我们只能枚举,但是对于第二点却不必暴力枚举 考虑经过删减第一个点之后的图,如果删去这个点之后剩下了一个部分,那么我们对这张图tarjan求割点,然后加入结果就好了。如果剩下了2个部分,那么考虑这两个部分中的点的个数,如果两个部分中的点都是1个,那么对结果没有贡献。如果只有一个部分是1个点,那么

普通で歩む 572

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

hdu3671 Boonie and Clyde 割点

题意:给一个连通无向图。问存在多少对点,毁掉之后图不连通。 思路:http://www.cnblogs.com/scau20110726/archive/2013/05/22/3092078.html #include// 思路:枚举要删除的第一个点。 #include #include #include #include #include #include #include #includ

chen_minghui的博客 409

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

hdu 3671 Boonie and Clyde

双连通分量 题意:给一个无向图,要求毁掉两个点,使图变得不连通,图一开始是连通的 因为要毁掉两个点,就不是简单的求割点,再看看数据范围,点数为1000,边数为10000,Tarjan的时间复杂度为O(E),如果用枚举法,先枚举要毁掉的第一个点,再用Tarjan进行处理来找割点会不会超时呢?答案是不会,时间为O(v*E),刚好是千万级别,不超 做法:先枚举要删除的第1个点,在原图中删除它,看看...

weixin_33971205的博客 136

HDU - 3671 Boonie and Clyde (图的割点)

As two icons of the Great Depression, Bonnie and Clyde represent the ultimate criminal couple. Stories were written, headlines captured, and films were made about the two bank robbers known as Romeo a...

weixin_30535913的博客 170

hdu-3671-tarjin/割点方案

http://acm.hdu.edu.cn/showproblem.php?pid=3671 给出一幅无向图,询问有多少种移除点对的方案使得剩下的连通分量个数大于1. 和上一题差不多的思路直接做n次tarjin即可。 1 #include<iostream> 2 #include<cstdio> 3 #include<vector>...

all00747的博客 184

HDU 4587 割点

点击打开链接 题意:给一个无向图,可能是不连通的,问删除两个点之后联通块最多的数量,两个点随意 思路:之前写过一个删除一个点的剩余联通块的题目,和这个差不多嘛,但是要注意细节,WA了10多次,对于一个5000个点和5000条边的图来说,我们可以先去枚举删除一个点,然后剩下的操作就和删除一个点的相同了我们找到最大的cnt,cnt记录的是这个点删除后的联通块个数-1;具体细节看代码把,注意这种情况

Dan__ge的博客 1038

hdu5952 Counting Cliques DFS

Counting Cliques Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 184    Accepted Submission(s): 56 Problem Description A clique is

EventQueue的博客 1950

蓝桥杯 历届试题 PREV-12 危险系数 并查集找割点 Java

历届试题 危险系数   时间限制:1.0s   内存限制:256.0MB        问题描述 抗日战争时期,冀中平原的地道战曾发挥重要作用。 地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。 我们来定义一个危险系数DF(x,y): 对于两个站点x和y (x != y), 如果能

EventQueue的博客 1267

团体程序设计天梯赛-练习集 L2-1. 紧急救援 Dijstra单源最短路径拓展应用

L2-1. 紧急救援 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数

EventQueue的博客 1151

hdu2544 最短路 Dijstra算法堆优化,Bellman-Ford,Bellman-Ford队列优化

最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 48071    Accepted Submission(s): 21174 Problem Description 在每年的校赛里,所有进入决赛的同学都会获

EventQueue的博客 1127

codeforces 659E New Reform

E. New Reform time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Berland has n cities connected by m bidirectio

EventQueue的博客 1028

hdu5723 Abandoned country

Abandoned country Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 938    Accepted Submission(s): 251 Problem Description An abandon

EventQueue的博客 923
上一篇: 团体程序设计天梯赛 L3-008. 喊山 BFS
下一篇: 团体程序设计天梯赛-练习集 L2-014. 列车调度 构造非递减数列二分查找
Daemoonn
博客等级 码龄11年 42粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值