当前位置: 首页 > news >正文

UVa 539 The Settlers of Catan

题目描述

题目要求在一个无向图中找出最长路径(边不重复,节点可重复)。图中节点的度数不超过333,节点数n≤25n \le 25n25,边数m≤25m \le 25m25。输出最长路径的边数(即路径长度)。

输入格式

输入包含多个测试用例。每个测试用例的第一行包含两个整数nnnmmm2≤n≤252 \le n \le 252n251≤m≤251 \le m \le 251m25)。接下来mmm行,每行两个整数uuuvvv,表示一条无向边。输入以0 0结束。

输出格式

对于每个测试用例,输出一行一个整数,表示最长路径的边数。

样例

输入

3 2 0 1 1 2 15 16 0 2 1 2 2 3 3 4 3 5 4 6 5 7 6 8 7 8 7 9 8 10 9 11 10 12 11 12 10 13 12 14 0 0

输出

2 12

题目分析

本题的核心是在无向图中搜索最长路径(边不可重复,节点可重复)。由于m≤25m \le 25m25,可以直接使用深度优先搜索(DFS\texttt{DFS}DFS)枚举所有路径。

搜索策略

  • 从每个节点出发,进行DFS\texttt{DFS}DFS,记录当前路径长度。
  • 使用visited[u][v]\textit{visited}[u][v]visited[u][v]标记边是否已被使用(无向边双向标记)。
  • 每当到达一个节点,更新最大长度。
  • 递归搜索所有相邻的未使用边。

剪枝

由于度数≤3\le 33,搜索分支有限,无需额外剪枝。

复杂度分析

最坏情况下,完全图K25K_{25}K25的边数为300300300,但本题m≤25m \le 25m25,且度数≤3\le 33,搜索空间有限。

代码实现

// The Settlers of Catan// UVa ID: 539// Verdict: Accepted// Submission Date:// UVa Run Time: s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;constintMAX_V=30;intn,m,maxLength=0,visited[MAX_V][MAX_V],connected[MAX_V][MAX_V];voiddfs(intu,intlength){maxLength=max(maxLength,length);for(intv=0;v<n;v++)if(connected[u][v]&&!visited[u][v]&&!visited[v][u]){visited[u][v]=visited[v][u]=1;dfs(v,length+1);visited[u][v]=visited[v][u]=0;}}intmain(intargc,char*argv[]){cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);intfrom,to;while(cin>>n>>m,n>0){memset(connected,0,sizeof(connected));for(inti=1;i<=m;i++){cin>>from>>to;connected[from][to]=connected[to][from]=1;}maxLength=0;for(inti=0;i<n;i++){memset(visited,0,sizeof(visited));dfs(i,0);}cout<<maxLength<<'\n';}return0;}
http://www.cnnetsun.cn/news/2964789.html

相关文章:

  • 告别LaTeX环境配置烦恼?LaTeX.Online帮你一键搞定专业PDF文档
  • 如何解决联发科设备变砖问题:MTKClient刷机工具完全指南
  • 入耳式蓝牙耳机佩戴舒适度技术解析——以梵洛音CZA06与Redmi Buds 6为例
  • 鸣潮自动化革命:5分钟掌握后台自动战斗,释放你的游戏时间
  • ACE-Step UI:免费开源AI音乐生成工具,终结Suno付费时代
  • C++好痛苦啊
  • 序列检测器(Verilog):从状态机到移位寄存器的工程实践
  • DeepSeek V4实测解析:长上下文、工具调用与中文因果推理三大突破
  • 超图在推荐系统中的高阶关系建模与应用实践
  • 风管的连接方式优化:提升安装效率与质量
  • Android网络诊断实战:从命令行到代码的Ping工具开发
  • Biomni:构建生物医学AI智能体的完整实战指南 [特殊字符]
  • 如何在PC上完美使用PS4手柄?DS4Windows游戏控制器映射终极指南
  • 解放双手的鸣潮智能自动化工具:ok-ww 深度解析
  • 语义检索与混合搜索:基于Elasticsearch和Milvus的召回优化
  • 免费去水印软件有哪些推荐?手机/电脑通用,2026亲测盘点!
  • 竞赛利器:基于安卓蓝牙调试器的快速原型开发指南
  • OpenCloud云原生改造、服务治理与弹性扩缩容实战
  • QtScrcpy终极指南:3步实现电脑键鼠操控安卓手机,游戏办公两不误
  • 魔兽争霸3必备神器:WarcraftHelper让你的经典游戏焕发新生
  • Three.js 3D模型拆解动画:从基础爆炸到智能散开的进阶实现
  • 【干货】7套核心数据分析思维框架,搞定90%业务涨跌问题
  • 掌握Mermaid编辑器:5个高效图表制作技巧
  • 51单片机PWM调速实战:L298N驱动代码精讲与优化
  • 低开视图如何实现搜索条件回车搜索?
  • 传统观念:散户资金小不用仓位管理,编程模拟小资金满仓/分仓两套方案多年回测,量化仓位管理对小散影响。
  • 3步突破流媒体壁垒:猫抓MPD/DASH解析技术完全指南
  • 24AA01H与24LC01BH选型指南:从电压差异到实战应用
  • 终极指南:如何快速免费监控Elsevier投稿审稿状态
  • 学位证毕业证翻译去哪办?学位证毕业证翻译怎么办理?