Codeforces 542E. Playing on Graph

本文探讨了在无向图中通过合并不相邻节点来最大化最终链状结构长度的算法。解析了奇环与偶环的转换规律,指出奇环最终会形成无法解决的三元环,提出使用二分图判断并求解各连通块直径,累加得到最优解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目
题意:给出一个?个点?条边的无向图。你每次需要选择两个没有边相连的点,将它们合并为一个新点,直到这张图变成了一条链。最大化这条链的长度,或输出无解

Solution

可以发现,奇环->奇环+偶环;偶环->奇环+奇环或偶环+偶环(单独一条边看作偶环)
所以奇环最终一定会变成三元环,而三元环是无解的,所以奇环是无解的,二分图判一下
然后给每个联通块求一遍直径,加起来即为最终答案

Code

#include<bits/stdc++.h>
using namespace std;
const int N=1002;
struct node{
	int to,ne;
}e[N*N];
int n,m,i,x,y,col[N],h[N],num[N],bel[N],cnt,dis[N],tot,ans;
queue<int>q;
bool fl;
inline char gc(){
	static char buf[100000],*p1=buf,*p2=buf;
	return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
}
inline int rd(){
	int x=0,fl=1;char ch=gc();
	for (;ch<48||ch>57;ch=gc())if(ch=='-')fl=-1;
	for (;48<=ch&&ch<=57;ch=gc())x=(x<<3)+(x<<1)+(ch^48);
	return x*fl;
}
void add(int x,int y){
	e[++tot]=(node){y,h[x]};
	h[x]=tot;
}
void dfs(int u){
	bel[u]=cnt;
	for (int i=h[u],v;i;i=e[i].ne)
		if (col[v=e[i].to]==-1){
			col[v]=col[u]^1;
			dfs(v);
		}else if (col[v]==col[u]) fl=1;
}
void bfs(int x){
	memset(dis,-1,sizeof(dis));
	q.push(x);dis[x]=0;
	while (!q.empty()){
		int u=q.front();q.pop();
		for (int i=h[u],v;i;i=e[i].ne)
			if (dis[v=e[i].to]==-1){
				dis[v]=dis[u]+1;
				q.push(v);
			}
	}
	int &mx=num[bel[x]];
	for (int i=1;i<=n;i++) mx=max(mx,dis[i]);
}
int main(){
	n=rd();m=rd();
	for (i=1;i<=m;i++) x=rd(),y=rd(),add(x,y),add(y,x);
	memset(col,-1,sizeof(col));
	for (i=1;i<=n && !fl;i++)
		if (col[i]==-1) cnt++,col[i]=0,dfs(i);
	if (fl) return puts("-1"),0;
	for (i=1;i<=n;i++) bfs(i);
	for (i=1;i<=cnt;i++) ans+=num[i];
	printf("%d",ans);
}
标题基于SpringBoot+Vue的学生交流互助平台研究AI更换标题第1章引言介绍学生交流互助平台的研究背景、意义、现状、方法与创新。1.1研究背景与意义分析学生交流互助平台在当前教育环境下的需求及其重要性。1.2国内外研究现状综述国内外在学生交流互助平台方面的研究进展与实践应用。1.3研究方法与创新概述本研究采用的方法论、技术路线及预期的创新成果。第2章相关理论阐述SpringBoot与Vue框架的理论基础及在学生交流互助平台中的应用。2.1SpringBoot框架概述介绍SpringBoot框架的核心思、特及优势。2.2Vue框架概述阐述Vue框架的基本原理、组件化开发思及与前端的交互机制。2.3SpringBoot与Vue的整合应用探讨SpringBoot与Vue在学生交流互助平台中的整合方式及优势。第3章平台需求分析深入分析学生交流互助平台的功能需求、功能需求及用户体验要求。3.1功能需求分析详细阐述平台的各项功能需求,如用户管理、信息交流、互助学习等。3.2功能需求分析对平台的性能、安全性、可扩展性等功能需求进行分析。3.3用户体验要求从用户角度出发,提出平台在易用性、美观性等方面的要求。第4章平台设计与实现具体描述学生交流互助平台的架构设计、功能实现及前后端交互细节。4.1平台架构设计给出平台的整体架构设计,包括前后端分离、微服务架构等思的应用。4.2功能模块实现详细阐述各个功能模块的实现过程,如用户登录注册、信息发布与查看、在线交流等。4.3前后端交互细节介绍前后端数据交互的方式、接口设计及数据传输过程中的安全问题。第5章平台测试与优化对平台进行全面的测试,发现并解决潜在问题,同时进行优化以提高性能。5.1测试环境与方案介绍测试环境的搭建及所采用的测试方案,包括单元测试、成测试等。5.2测试结果分析对测试结果进行详细分析,找出问题的根源并
内容概要:本文详细介绍了一个基于灰狼优化算法(GWO)优化的卷积双向长短期记忆神经网络(CNN-BiLSTM)融合注意力机制的多变量多步时间序列预测项目。该项目旨在解决传统时序预测方法难以捕捉线性、复杂时序依赖关系的问题,通过融合CNN的间特征提取、BiLSTM的时序建模能力及注意力机制的动态权重调节能力,实现对多变量多步时间序列的精准预测。项目不涵盖了数据预处理、模型构建与训练、性能评估,还包括了GUI界面的设计与实现。此外,文章还讨论了模型的部署、应用领域及其未来改进方向。 适合人群:具备一定编程基础,特别是对深度学习、时间序列预测及优化算法有一定了解的研发人员和数据科学家。 使用场景及目标:①用于智能电网负荷预测、金融市场多资产价格预测、环境气象多参数预报、智能制造设备状态监测与预测维护、交通流量预测与智慧交通管理、医疗健康多指标预测等领域;②提升多变量多步时间序列预测精度,优化资源调度和风险管控;③实现自动化超参数优化,降低人工调参成本,提高模型训练效率;④增强模型对复杂时序数据特征的学习能力,促进智能决策支持应用。 阅读建议:此资源不提供了详细的代码实现和模型架构解析,还深入探讨了模型优化和实际应用中的挑战与解决方案。因此,在学习过程中,建议结合理论与实践,逐步理解各个模块的功能和实现细节,并尝试在自己的项目中应用这些技术和方法。同时,注意数据预处理的重要性,合理设置模型参数与网络结构,控制多步预测误差传播,防范过拟合,规划计算资源与训练时间,关注模型的可解释性和透明度,以及持续更新与迭代模型,以适应数据分布的变化。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值