网格
文章平均质量分 72
寂静山林
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
UVa 1103 Ancient Messages
本题的关键在于利用拓扑等价性将象形文字识别问题转化为洞数计数问题。六种象形文字分别对应000到444个洞,其中AnkhAnkh和AkehtAkeht都只有111个洞,但它们对应的字符不同,因此需要根据洞数映射到正确的字符。实现时需要注意:在图像四周添加白色边界以便正确标记外部背景;在搜索黑色连通区域时,遇到白色像素立即计数并标记整个白色连通区域,避免重复计数。算法的时间复杂度和空间复杂度均为OH×WOH×W,能够高效处理最大规模的输入。原创 2026-10-16 10:44:21 · 215 阅读 · 0 评论 -
UVa 1092 Tracking Bio-Bots
本题的关键在于利用坐标压缩处理大尺寸网格。由于墙壁数量有限,通过提取所有墙壁的边界坐标,将原始网格压缩为Ow×OwOw×Ow的小网格。在压缩网格上进行反向BFSBFS,标记所有能够到达出口的方格,并累加其面积。最终卡住方格数等于总方格数减去墙壁面积和可达面积。注意墙壁的坐标处理:墙壁占据的方格范围是x1x2[x_1, x_2]x1x2和y1y1[y_1, y_1]y1y1,在压缩时需要将x2x_2x2和y2y_2y2。原创 2026-10-15 14:39:20 · 43 阅读 · 0 评论 -
UVa 808 Bee Breeding
给定蜂房螺旋编号,求两蜂房最短步数。采用逐层映射到二维六边形坐标,利用六边形网格距离公式计算。预计算10000以内所有编号坐标,查询时差分求解。时间复杂度预计算O(√N),查询O(1),可处理多组数据。原创 2026-09-03 10:21:17 · 163 阅读 · 0 评论 -
UVa 13011 Height Map
题目要求计算由高度图构建的多面体的面数。多面体由底面(1个)、顶面(同高度连通块数)和侧面(四个方向的垂直面)组成。顶面通过BFS统计连通块;侧面通过旋转矩阵处理四个视角,扫描每列暴露的高度区间并检查水平连通性来统计面数。总面数为底面、顶面和侧面数之和。算法复杂度为O(RC log R),适用于R,C≤100的输入。代码实现包括BFS、旋转矩阵和侧面统计逻辑,通过样例验证了正确性。原创 2026-08-29 08:36:24 · 368 阅读 · 0 评论 -
UVa 587 There‘s Treasure Everywhere
本文介绍了一个计算寻宝路径最终坐标和距离的算法。题目要求从原点出发,按照给定的八个方向(N、NE、E、SE、S、SW、W、NW)移动,其中对角线方向(NE、SE、SW、NW)的步长需要乘以√2/2分解到x和y轴。输入由多个地图描述组成,每个描述以逗号分隔的步数方向对表示,以"."结尾,最后以"END"结束。输出每个地图的编号、最终坐标和到原点的欧几里得距离,保留三位小数。原创 2026-06-24 12:25:42 · 72 阅读 · 0 评论 -
UVa 572 Oil Deposits
本文介绍了一个计算二维网格中八连通油藏数量的算法。题目要求在由@(油藏)和*(空地)组成的网格中,统计相邻(包括八个方向)的@构成的连通块数量。解决方案采用洪水填充算法(DFS或BFS),遍历网格时遇到@即启动填充标记,避免重复计数。算法时间复杂度为O(m×n),适用于网格大小1≤m,n≤100的情况。示例代码使用DFS递归实现,通过输入多个网格并输出各自连通块数量来验证算法正确性。原创 2026-06-23 08:47:33 · 152 阅读 · 0 评论 -
UVa 556 Amazing
本文介绍了如何模拟机器人按照右墙法则在迷宫中行走。机器人从迷宫的西南角出发,初始方向朝东,始终贴着右侧墙壁移动。当遇到前方有墙时,它会左转直至可以前进。行走过程中,机器人会记录每个空闲单元格被访问的次数,直至回到起点。输入包含多个迷宫,每个迷宫以行数和列数开头,随后是迷宫布局。输出每个迷宫中单元格被访问0到4次的次数统计,结果右对齐。算法通过方向数组和条件判断实现机器人的移动和转向,确保正确遵循右墙法则。最终统计各单元格的访问次数并按格式输出。原创 2026-06-21 10:15:31 · 71 阅读 · 0 评论 -
UVa 535 Globetrotter
题目要求计算地球表面两个城市之间的球面距离。地球被视为半径为6378公里的完美球体。输入包括城市列表(城市名、纬度、经度)和查询列表(两个城市名)。对于每个查询,输出两城市之间的距离(四舍五入到整数),若城市不存在则输出"Unknown"。计算使用半正矢公式(haversine),将经纬度转换为弧度后代入公式得出距离。算法复杂度为O(1)每次查询,适用于城市数不超过100的情况。代码实现中使用了map存储城市坐标,并正确处理了边界情况。原创 2026-06-19 10:02:13 · 199 阅读 · 0 评论 -
UVa 469 Wetlands of Florida
本文介绍了如何计算二维网格中八连通水域的面积问题。给定由 W(水)和 L(陆地)组成的网格,对于每个查询的水单元格坐标,需输出其所在连通水域的 W 数量。解决方案采用洪水填充算法(DFS/BFS)遍历八个方向的相邻单元格,统计连通分量大小。关键点包括坐标转换、临时标记访问过的单元格以避免重复计数,以及处理多测试用例的输入输出格式。算法复杂度为 O(n×m) 每次查询,适用于最大 99×99 的网格。原创 2026-06-12 08:53:41 · 76 阅读 · 0 评论 -
UVa 411 Centipede Collisions
本文模拟了多条蜈蚣在30x30网格上的运动与碰撞过程。每条蜈蚣由若干节段组成,按编号顺序循环移动,方向统一。当多个节段同时占据同一网格单元时发生碰撞,碰撞位置的节段停止并标记为X,后续节段脱离继续移动直至遇到障碍或边界。输入包含蜈蚣数量及每条蜈蚣的方向、长度和初始位置,输出为最终网格状态,其中X表示碰撞位置。通过逐轮模拟处理移动、碰撞检测和节段脱离,确保所有可能运动终止后输出结果。原创 2026-06-07 06:11:13 · 198 阅读 · 0 评论 -
UVa 360 Don‘t Get Hives From This One
题目描述了一个六边形网格迷宫求解问题。给定迷宫的行列数、入口和出口位置,以及各房间的墙壁开口情况,要求使用右手法则模拟从入口到出口的路径。右手法则指始终沿着右侧墙壁前进,直至找到出口或返回入口。输入包含多个迷宫描述,输出路径序列及是否找到解。关键在于处理六边形网格的特殊几何结构,包括房间编号与坐标的转换、相邻关系的确定,以及右手法则的模拟实现。通过DFS算法跟踪路径,判断是否可达出口。原创 2026-06-02 08:03:02 · 198 阅读 · 0 评论 -
UVa 352 The Seasonal War
本文介绍了如何解决一个连通分量计数问题:给定一个n×n的二进制矩阵(1表示战鹰,0表示背景或干扰),统计其中由1组成的八连通区域数量。算法采用洪水填充(DFS/BFS)遍历每个像素,遇到1时递归标记所有相邻1为0并计数。与标准四连通不同,八连通包括对角线方向。参考代码使用递归实现洪水填充,时间复杂度为O(n²)。输入为多个图像,输出每个图像的战鹰数量。样例输入输出验证了算法的正确性。原创 2026-06-01 11:24:57 · 205 阅读 · 0 评论 -
UVa 317 Hexagon
本文探讨了一个由19个六边形格子组成的棋盘游戏,目标是选择19个棋子(从27种可能中选取)以最大化棋盘得分。棋盘有三个方向,每个方向有5行,得分取决于每行棋子数字的一致性。通过分析棋盘结构和对称性,提出了一种优化方法:枚举每个方向作为主方向,并利用预计算的行长度分配系数计算得分。最终算法的时间复杂度为O(1)每个测试用例,通过枚举三种主方向情况取最高分。参考代码展示了如何实现这一思路,验证了方法的正确性和高效性。该问题的解决体现了组合优化中结构分析和模式预计算的重要性。原创 2026-05-28 10:37:36 · 38 阅读 · 0 评论 -
UVa 312 Crosswords (II)
本文描述了一个填字游戏可视化算法,将0/1矩阵转换为图形化表示。算法分为以下步骤: 读取m×n矩阵(0表示白色方格,1表示黑色方格) 使用洪水填充标记边缘黑色方格 为符合条件的白色方格编号(满足垂直或水平方向起始条件) 处理边缘黑色方格的显示规则(与白色方格相邻的才显示) 将每个方格绘制为4×6字符的框,有编号的显示三位编号 输出图形化结果,去除不必要的边缘黑色方格 关键点包括:编号规则判断、边缘方格处理、图形化绘制时的坐标计算。算法时间复杂度为O(mn),能够高效处理25×25以内的矩阵。原创 2026-05-28 10:06:48 · 398 阅读 · 0 评论 -
UVa 278 Chess
本文分析了在m×n棋盘上放置最多互不攻击的同一类棋子(车、马、后、王)的问题。针对每种棋子特性,给出了数学解法:车和后最多放置min(m,n)个;王最多放置⌈m/2⌉×⌈n/2⌉个;马最多放置⌈mn/2⌉个。这些解法利用了组合数学原理,避免了复杂搜索,在O(1)时间内即可求解。代码实现验证了这些公式的正确性,展示了算法竞赛中分析问题本质的重要性。原创 2026-05-24 08:18:46 · 416 阅读 · 0 评论 -
UVa 227 Puzzle
本题要求模拟一个5×5滑动拼图的移动过程。初始布局包含24个字母方块和一个空白格,通过输入指令(A/B/L/R)移动空白格相邻的方块。若指令非法(超出边界),则输出无解信息;否则输出最终布局。输入以5行初始布局开始,随后是多行移动指令(以0结束),整个输入以Z终止。每个测试用例输出"Puzzle #x:",合法移动时输出5行每行5个字符(空格分隔),非法时提示无解。需注意输入格式处理,如行首空白补位和跨行指令读取。原创 2026-05-14 17:02:50 · 92 阅读 · 0 评论 -
UVa 209 Triangular Vertices
本文探讨了在无限等边三角形网格上判断给定顶点集合能否构成特定几何图形的问题。题目要求顶点集合必须满足边与网格重合且边长相等的条件。通过分析网格的几何特性,提出了两种解法:基于坐标投影的数值方法和基于编号的代数方法。前者通过计算顶点坐标进行几何判断,后者利用预计算的网格对角线关系高效验证图形性质。文章详细讨论了三角形、平行四边形和六边形的判定逻辑,并提供了代码实现的关键思路,强调了对重复编号的处理和精确的几何关系验证。最终解法避免了浮点误差,确保了高效准确的图形识别。原创 2026-05-12 11:20:47 · 140 阅读 · 0 评论 -
UVa 201 Squares
题目要求统计给定点阵网格中不同边长的正方形数量。通过设计三维数组存储线段信息,预处理合并连续线段,并动态判断四条边是否完整存在来确定正方形。代码实现中采用枚举边长和顶点位置的方法,输出格式严格遵循题目要求。该算法适用于小规模网格(n≤9),时间复杂度为O(n^3)。原创 2026-05-12 09:34:29 · 352 阅读 · 0 评论 -
UVa 135 No Rectangles
本文提出了一种基于有限射影平面理论的构造方法,用于解决n×n网格中选择k个交点的问题。该方法要求每行每列恰好选k个点,且不形成边平行于网格的矩形。当k-1为素数时,通过将解构分为两组行:第一组包含"无穷远点"的线,第二组为仿射平面上的线,利用数论公式计算点坐标。该算法时间复杂度O(k³),空间复杂度O(1),通过射影平面的组合性质保证了无矩形条件和行列平衡性,并给出了k=2和3的示例验证。原创 2025-10-14 20:35:54 · 526 阅读 · 0 评论 -
UVa Problem 10161 Ant on a Chessboard (棋盘上的蚂蚁)
// Ant on a Chessboard (棋盘上的蚂蚁)// PC/UVa IDs: 111201/10161, Popularity: B, Success rate: high Level: 1// Verdict: Accepted// Submission Date: 2011-11-01// UVa Run Time: 0.008s//// 版权所有(C)2011,邱秋原创 2011-11-01 00:29:53 · 1961 阅读 · 0 评论 -
UVa Problem 121 - Pipe Fitters
// UVa Problem 121 - Pipe Fitters// Verdict: Accepted// Submission Date: 2011-12-18// UVa Run Time: 0.028s//// 版权所有(C)2011,邱秋。metaphysis # yeah dot net//// [解题方法]// 可以归类为网格题,简单题。#include #i原创 2011-12-18 22:50:20 · 3674 阅读 · 0 评论 -
UVa Problem 118 - Mutant Flatworld Explorers
// UVa Problem 118 - Mutant Flatworld Explorers// Verdict: Accepted// Submission Date: 2011-11-26// UVa Run Time: 0.008s//// 版权所有(C)2011,邱秋。metaphysis # yeah dot net//// [解题方法]// 网格,数据结构,模拟。若某原创 2011-12-02 14:55:40 · 3099 阅读 · 0 评论 -
UVa Problem 10075 Airlines (航线)
// Airlines (航线)// PC/UVa IDs: 111208/10075, Popularity: C, Success rate: high Level: 3// Verdict: Accepted// Submission Date: 2011-11-01// UVa Run Time: 0.060s//// 版权所有(C)2011,邱秋。metaphysis # y原创 2011-11-07 21:45:58 · 2842 阅读 · 0 评论 -
UVa Problem 10233 Dermuba Triangle (Dermuba 三角)
// Dermuba Triangle (Dermuba 三角)// PC/UVa IDs: 111207/10233, Popularity: C, Success rate: high Level: 2// Verdict: Accepted// Submission Date: 2011-11-01// UVa Run Time: 0.016s//// 版权所有(C)2011,邱原创 2011-11-07 00:10:07 · 2374 阅读 · 0 评论 -
UVa Problem 108 - Maximum Sum
// UVa Problem 108 - Maximum Sum// Verdict: Accepted// Submission Date: 2011-11-23// UVa Run Time: 0.112s//// 版权所有(C)2011,邱秋。metaphysis # yeah dot net//// [解题方法]// 该题可以归结为网格上的算法。实际上可以通过正交范围查询来原创 2011-11-24 22:01:25 · 978 阅读 · 0 评论 -
UVa Problem 10177 (2/3/4)-D Sqr/Rects/Cubes/Boxes? (2/3/4-维立方体?)
// (2/3/4)-D Sqr/Rects/Cubes/Boxes? (2/3/4-维立方体?)// PC/UVa IDs: 111206/10177, Popularity: B, Success rate: high Level: 2// Verdict: Accepted// Submission Date: 2011-11-01// UVa Run Time: 0.016s//原创 2011-11-06 01:34:21 · 2048 阅读 · 6 评论 -
UVa Problem 10047 The Monocycle(独轮车)
// The Monocycle(独轮车)// PC/UVa IDs: 111202/10047, Popularity: C, Success rate: average Level: 3// Verdict: Accepted// Submission Date: 2011-11-01// UVa Run Time: 0.076s//// 版权所有(C)2011,邱秋。metaph原创 2011-11-01 21:00:07 · 2477 阅读 · 0 评论 -
UVa Problem 707 Robbery (抢劫)
// Robbery (抢劫)// PC/UVa IDs: 111205/707, Popularity: B, Success rate: average Level: 3// Verdict: Accepted// Submission Date: 2011-11-04// UVa Run Time: 0.036s//// 版权所有(C)2011,邱秋。metaphysis # y原创 2011-11-05 00:58:12 · 2054 阅读 · 0 评论 -
UVa Problem 10182 Bee Maja (蜜蜂 Maja)
// Bee Maja (蜜蜂 Maja)// PC/UVa IDs: 111204/10182, Popularity: B, Success rate: high Level: 2// Verdict: Accepted// Submission Date: 2011-11-01// UVa Run Time: 0.012s//// 版权所有(C)2011,邱秋。metaphysi原创 2011-11-03 07:57:21 · 5197 阅读 · 0 评论 -
UVa Problem 10159 Star (六角星)
// Star (六角星)// PC/UVa IDs: 111203/10159, Popularity: C, Success rate: average Level: 2// Verdict: Accepted// Submission Date: 2011-11-01// UVa Run Time: 0.056s//// 版权所有(C)2011,邱秋。metaphysis # y原创 2011-11-02 08:12:55 · 2505 阅读 · 0 评论
分享