题解:洛谷 P17014 [GESP202606 七级] 染色
📅 2026/7/17 20:06:35
👁️ 次浏览
本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。欢迎大家订阅我的专栏算法题解C与Python实现附上汇总贴算法竞赛备考冲刺必刷题C | 汇总【题目来源】洛谷P17014 [GESP202606 七级] 染色 - 洛谷【题目描述】小杨同学有一张包含n nn个结点的无向图G GG,G GG中的结点依次以1 , 2 , … , n 1, 2, \dots, n1,2,…,n编号。小杨同学发现G GG中每个结点的度数都是2 22。显然G GG中恰好有n nn条边。小杨同学想为G GG中的结点染色使得任意一条边两端的结点都有不同的颜色。小杨同学想知道最少需要多少种颜色才能在满足条件的前提下为G GG染色。【输入】本题包含多组数据。第一行一个正整数t tt表示数据组数。对于每组数据第一行一个正整数n nn表示无向图G GG中的结点数。接下来n nn行每行两个正整数u i , v i u_i, v_iui,vi表示一条连接结点u i u_iui与v i v_ivi的无向边整数之间以空格分隔。保证G GG中没有重边与自环。【输出】对于每组数据输出一行一个整数表示在满足条件的前提下为G GG染色需要的最少颜色数。【输入样例】4 6 1 6 2 1 3 2 4 3 5 4 6 5 6 1 3 3 5 5 1 2 4 4 6 6 2 3 1 2 2 3 3 1 5 1 4 2 5 3 1 4 2 5 3【输出样例】2 3 3 3【核心思想】问题分析给定一个每个结点度数均为2 22的无向图G GG即G GG由若干个不相交的环组成每个连通块是一个简单环。要求为结点染色使得相邻结点颜色不同求最少颜色数。这是一个图论性质分析 连通块分类问题核心在于利用每个结点度数为2 22的条件推导出图的结构特征进而确定每个连通块的色数。算法选择图结构分析度数为2 22的无向图必然由若干个简单环构成无重边、无自环保证环的色数判定偶环是二分图色数为2 22奇环不是二分图色数为3 33深度优先搜索DFS统计每个连通块的结点数判断奇偶性关键步骤建图读入n nn条边建立无向图的邻接表连通块遍历对每个未访问的结点i iic n t ← 0 cnt \leftarrow 0cnt←0启动d f s ( i ) dfs(i)dfs(i)统计连通块大小若c n t m o d 2 0 cnt \bmod 2 0cntmod20r e s ← 2 res \leftarrow 2res←2偶环二分图2 22色可染若c n t m o d 2 1 cnt \bmod 2 1cntmod21r e s ← 3 res \leftarrow 3res←3奇环非二分图需3 33色a n s ← max ( a n s , r e s ) ans \leftarrow \max(ans, res)ans←max(ans,res)输出结果a n s ansans时间/空间复杂度时间复杂度O ( t ⋅ ( n m ) ) O ( t ⋅ n ) O(t \cdot (n m)) O(t \cdot n)O(t⋅(nm))O(t⋅n)其中m n m nmn每个结点度数为2 22DFS 遍历每个连通块一次空间复杂度O ( n ) O(n)O(n)邻接表和访问标记数组图论性质分析的核心思想度数约束推导结构无向图中所有结点度数为2 22且无重边、无自环则图必然由若干个不相交的简单环组成。每个连通块是一个环结点数等于边数二分图与色数偶环是二分图可以用2 22种颜色交替染色奇环包含奇数长度的回路不是二分图根据 Brooks 定理和具体结构分析需要3 33种颜色全局最优取最大整个图的最少颜色数等于所有连通块色数的最大值各连通块独立染色颜色可复用DFS 统计连通块利用访问标记数组和 DFS 遍历高效统计每个连通块的结点数无需显式找环适用于具有特殊度数约束的图结构分析、连通块分类判定类问题【算法标签】#普及 #DFS-图【代码详解】#includebits/stdc.husingnamespacestd;constintN100005;// 常量最大结点数intt;// t: 数据组数intn;// n: 当前数据的结点数vectorintg[N];// g[x]: 结点 x 的邻接结点列表boolvis[N];// vis[x]: 标记结点 x 是否已被访问intcnt;// cnt: 当前连通块的结点数voiddfs(intx)// 深度优先搜索统计连通块大小{vis[x]true;// 标记当前结点已访问cnt;// 连通块结点数加一for(inti0;ig[x].size();i)// 遍历所有邻接结点{intyg[x][i];// y: 邻接结点if(vis[y])// 如果已访问跳过continue;dfs(y);// 递归搜索}}intmain(){cint;// 读入数据组数while(t--)// 循环处理每组数据{cinn;// 读入结点数for(inti1;in;i)// 清空邻接表g[i].clear();for(inti1;in;i)// 读入 n 条边{intu,v;// u, v: 边的两个端点cinuv;g[u].push_back(v);// 建立无向图g[v].push_back(u);}memset(vis,0,sizeof(vis));// 清空访问标记intans-1;// ans: 最少需要的颜色数intres;// res: 当前连通块需要的颜色数for(inti1;in;i)// 枚举每个结点处理所有连通块{cnt0;// 重置连通块计数器if(!vis[i])// 如果结点 i 未被访问新的连通块dfs(i);if(cnt%21)// 如果连通块结点数为奇数res3;// 奇环需要 3 种颜色else// 如果连通块结点数为偶数res2;// 偶环只需要 2 种颜色ansmax(ans,res);// 取所有连通块颜色数的最大值}coutansendl;// 输出最少需要的颜色数}return0;}【运行结果】4 6 1 6 2 1 3 2 4 3 5 4 6 5 2 6 1 3 3 5 5 1 2 4 4 6 6 2 3 3 1 2 2 3 3 1 3 5 1 4 2 5 3 1 4 2 5 3 3
1. 项目概述:当传统CRM遇上AI,一场效率革命正在发生在电子及通信设备制造业摸爬滚打十几年,我见过太多销售团队还在用Excel表格、微信群聊甚至纸质笔记本管理客户和商机。市场部好不容易搞来一堆展会名片和线上表单,最后能有效跟进…
📅 2026/7/17 20:06:34
文章目录先确定内容适不适合滚动速度和循环次数要给控制权标签和颜色负责降低识别成本页面结构怎么看完整代码写在最后跑马灯组件挺容易被滥用。公告太长、速度太快、颜色太花,用户最后只会觉得烦。但在一些场景里它确实有用,比如系统维护提醒、活动通知…
📅 2026/7/17 20:05:34
题目:1330:【例8.3】最少步数
题目描述
在各种棋中,棋子的走法总是一定的,如中国象棋中马走“日”。有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他规定马既能按“日”走,也能如象…
📅 2026/7/17 20:05:34
1. 飞凌嵌入式T113-i开发板休眠唤醒技术概述在嵌入式系统开发中,电源管理一直是工程师需要重点考虑的关键技术。飞凌嵌入式OK113i-S开发板基于全志T113-i处理器设计,这款国产化工业级芯片集成了双核Cortex-A7 CPU、64位玄铁C906 RISC-V协处理器和HiFi4 D…
📅 2026/7/17 21:06:01
1. 项目概述:为什么 Gemini 3.1 Flash TTS 的“限时免费”值得你立刻动手试一遍 Gemini 3.1 Flash TTS 不是又一个普通语音合成接口,它是目前全球范围内在 Elo 语音质量评测体系中稳居第二的生成式 TTS 模型——这个排名不是靠参数堆出来的,…
📅 2026/7/17 21:06:01
1. 项目概述:为什么在Windows上折腾CPLEX 20.1.0,值得花这三小时?我在带一个高校运筹学课程设计小组时,连续三年遇到同一个问题:学生装好CPLEX后,跑第一个example.mps就报错“CPLEX library not found”&am…
📅 2026/7/17 21:06:01
随着大模型应用快速落地,RAG(Retrieval-Augmented Generation,检索增强生成)架构已经成为企业知识库、智能客服、AI Agent 等场景中的核心技术。然而,RAG 并不是简单地“接入知识库即可安全运行”,其在数据…
📅 2026/7/17 21:06:01
1. 项目概述:为什么你需要了解无序集合?如果你已经跟着C的入门路线走了一段时间,从变量、循环、函数,到类与对象,再到接触了vector、list这些顺序容器,那么今天的内容绝对会让你眼前一亮,甚至可…
📅 2026/7/17 21:06:01
本文关键词:echarts geo画面做前端可视化的兄弟,是不是经常对着那个黑漆漆的地图发呆?明明代码没报错,但那个echarts geo画面就是渲染不出来,或者数据死活挂不上去。别急,这真不是你技术不行,而是很多教程里没告诉你的“隐形坑”。我上周帮一个电商客户改报表,就是卡在…
📅 2026/7/17 21:04:58
1. 为什么选择用DeepSeek V4替换Codex的底座模型去年我在开发一个智能代码补全工具时,发现Codex的默认底座模型在复杂业务逻辑场景下表现不尽如人意。经过多次测试对比,DeepSeek V4在以下几个关键指标上展现出明显优势:代码补全准确率&#x…
📅 2026/7/17 0:00:32
1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…
📅 2026/7/17 0:00:32
在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。
对工程应用和在自己的图片上进行测试来…
📅 2026/7/17 0:00:32
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/17 2:37:27
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/16 21:45:29
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/17 15:13:18
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/17 6:11:34
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/17 15:13:18
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/17 2:40:57