图论
文章平均质量分 91
我头发还没掉光~
博主经常上线,互三必回哦~~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
P1099 [NOIP 2007 提高组] 树网的核
题目要求在树网(无根树)中找到一条长度不超过s的核路径F,使得偏心距ECC(F)最小。核路径必须位于某条直径上,偏心距定义为树中所有点到F的最大距离。 解题步骤: 使用Floyd算法计算所有点对间的最短距离 找出树网的直径(最长路径的两个端点a和b) 枚举直径上所有长度不超过s的路径段作为候选核路径 对每个候选路径,计算所有点到该路径的最大距离(偏心距) 输出所有候选路径中的最小偏心距 关键点:核路径必须位于直径上,使用公式(d[i][k]+d[k][j]-d[i][j])/2计算点到路径的距离。时间复杂度原创 2026-04-05 17:38:33 · 349 阅读 · 5 评论 -
P1173 [NOI2016] 网格
摘要 本文研究跳蚤和蛐蛐在网格上的连通性问题。给定n×m网格和c个蛐蛐位置,需要判断能否通过将部分跳蚤替换为蛐蛐,使得剩余跳蚤不再全部连通。若能实现,则求最小替换数。核心解法是:1) 当剩余空地≤1时输出-1;2) 对障碍物周围2格范围进行网格压缩;3) 检查是否已被自然分割;4) 寻找关键割点位置;5) 若无割点则默认需替换2个。算法利用哈希表高效处理大规模网格,通过BFS和Tarjan算法分析连通性,时间复杂度与障碍物数量相关。原创 2026-03-11 18:35:41 · 637 阅读 · 0 评论 -
P1344 [USACO4.4] 追查坏牛奶 Pollutant Control
本文研究了三鹿牛奶公司运输网络中的最小割问题。通过将仓库建模为节点、运输卡车为有向边,将阻止问题转化为网络流中的最小割问题。采用Dinic算法求解最大流,并创新性地通过边权重设(w*(m+1)+1)实现双重优化目标:在保证总损失最小的前提下,使停止的卡车数最少。最终通过分解流量结果得到最小损失和最少卡车数。算法时间复杂度为O(N²M),适用于题目给定的数据规模。原创 2026-02-10 22:33:40 · 829 阅读 · 0 评论 -
P1155 [NOIP 2008 提高组] 双栈排序
本文研究了利用双栈实现排列排序的问题。给定一个1~n的排列,通过四个操作(压入/弹出两个栈)判断是否能将其排序,并输出字典序最小的操作序列。算法首先预处理后缀最小值构建冲突图,进行二分图染色判定可行性,然后模拟操作过程优先选择字典序小的操作。若染色失败则输出0,否则输出最小操作序列。示例输入1 3 2 4输出"a b a a b b a b",而2 3 4 1则不可行输出0。原创 2026-02-10 22:15:21 · 604 阅读 · 0 评论 -
P1700 [USACO19OPEN] Milk Factory B
摘要:题目要求在给定N个节点和N-1条有向边的树形结构中,判断是否存在一个根节点,使得从其他所有节点都能到达该节点。通过DFS遍历每个节点,检查是否能访问所有节点,若存在则输出最小编号的根节点,否则输出-1。算法时间复杂度为O(N²),核心思路是验证每个节点作为根节点的可达性。原创 2026-02-06 09:06:26 · 767 阅读 · 2 评论 -
P1113 杂务
这实际上是一个动态规划其中z1...zk是x的前置任务。最终答案是所有dp[i]的最大值,因为整个工程结束时间取决于最晚完成的任务。原创 2026-02-05 10:00:52 · 730 阅读 · 0 评论 -
P1529 [USACO2.4] 回家 Bessie Come Home
题目描述了一个牧场最短路径问题,要求找出距离谷仓Z最近的母牛所在牧场。母牛分布在大写字母A-Y标记的牧场,小写字母牧场无牛。输入给出P条道路连接情况(带权边),输出离Z最近的母牛所在牧场及其最短路径长度。核心算法采用DFS+剪枝策略,通过邻接矩阵存储图结构,并利用dis数组记录最短距离进行优化。最终遍历所有大写字母牧场,找出离Z最近的母牛位置。示例输入输出展示了算法正确性,如输入5条边时输出B 11,表示B牧场母牛到Z的最短路径为11。原创 2026-02-05 10:08:31 · 1571 阅读 · 0 评论 -
P5318 【深基18.例3】查找文献
这篇文章实现了一个有向图的DFS和BFS遍历算法。程序从节点1开始,首先进行深度优先搜索(递归实现),然后进行广度优先搜索(队列实现)。关键点包括:使用邻接表存储图结构,对邻接表排序确保遍历顺序一致,使用访问标记数组防止重复访问。输入格式为节点数n、边数m,以及m条有向边;输出为两行,分别是DFS和BFS的遍历序列。该算法适用于大规模图(n≤1e5,m≤1e6),正确处理了有向图的各种情况。原创 2026-02-03 12:31:20 · 561 阅读 · 0 评论 -
P2428 债务清单
题目要求根据学生报告的债务关系求解每个学生的具体债务。给定N个学生和M次报告,每次报告两个学生及他们的债务总和。需要输出每个学生的债务数额,保留两位小数;若无法确定则输出"IMPOSSIBLE"。 核心思路是建立图论模型,将学生视为节点,债务关系作为边权。通过BFS遍历图,用线性方程组求解每个节点的值。若出现矛盾则无解,否则输出唯一解。算法时间复杂度为O(N+M),适用于大规模数据。 注意处理连通分量和自由变量的情况,确保解的准确性。代码实现了这一逻辑,但需注意二分图情况的处理可能存在问原创 2026-02-04 09:33:12 · 1424 阅读 · 0 评论 -
P1330 封锁阳光大学
摘要:题目要求判断无向图是否为二分图,若是则求出最小河蟹数(即两种颜色中较小的一种)。算法采用DFS染色,检查相邻节点颜色是否冲突。若染色成功,统计每个连通分量中较少颜色的节点数之和;否则输出"Impossible"。时间复杂度为O(n+m),适用于大规模数据。示例1因存在奇环无法二分染色,示例2可单色覆盖。原创 2026-02-04 09:47:20 · 621 阅读 · 0 评论
分享