05_Rectangle Geometry 矩形几何 Rectangle Geometry 矩形几何 什么是矩形几何问题? 矩形几何问题是指涉及边平行于坐标轴的矩形的计算问题。这类问题在 USACO Bronze 中非常常见,主要考察对矩形面积、交集等概念的理解。 矩形表示方法 通常使用两个对角顶点来表示矩形: - 左下角 (bottom-left):(bl_x, bl_y) - 右上角 (top-right):(tr_x, tr_y) 2026-03-12 01_Bronze
04_Greedy Algorithms 贪心算法 Greedy Algorithms 贪心算法 什么是贪心算法? 贪心算法是一种在每一步选择中都采取局部最优解的算法,期望通过一系列局部最优选择达到全局最优。 贪心算法的特点 贪心选择性质:每一步都做出当前最优的选择 最优子结构:问题的最优解包含子问题的最优解 不可回溯:一旦做出选择,就不再考虑其他可能 贪心 vs 动态规划 特征 贪心算法 动态规划 2026-03-12 01_Bronze
03_Casework 案例分析 03_Casework 案例分析 什么是案例分析? 案例分析(Casework)是一种通过分情况讨论来解决问题的算法思想。当问题存在多种不同的情况,且每种情况需要不同的处理方式时,这种方法特别有效。 案例分析的特点 分情况讨论:将问题分成若干种情况分别处理 逻辑清晰:每种情况独立分析 避免复杂公式:用简单逻辑处理边界情况 需要仔细分析:确保覆盖所有可能的情况 适用场景 2026-03-12 01_Bronze
02_Complete Search 完全搜索 02_Complete Search 完全搜索 什么是完全搜索? 完全搜索(Complete Search / Brute Force)是一种通过枚举所有可能的情况来解决问题的算法思想。虽然听起来简单,但在 Bronze 级别中非常有效。 完全搜索的特点 枚举所有可能性:遍历问题的整个解空间 简单直接:不需要复杂的数学推导 适合小规模数据:当解空间较小时非常有效 往往能通过 2026-03-12 01_Bronze
01_Simulation 模拟 01_Simulation 模拟 什么是模拟算法? 模拟算法(Simulation)是最直接的算法思想——按照问题描述直接模拟整个过程。不需要复杂的优化或数学技巧,只需要忠实地执行题目给出的规则。 模拟算法的特点 直观简单:按照题目描述直接实现 无需优化技巧:重点在于正确理解题意 适合入门:Bronze 级别最常见的题型 注意细节:需要仔细处理边界情况和数据范围 适用场景 2026-03-12 01_Bronze
05_Cow_Gymnastics 问题描述 USACO 2019 December Contest, Bronze Problem 1. Cow Gymnastics https://usaco.org/index.php?page=viewproblem2&cpid=963 奶牛们正在进行体操训练,Bessie 记录了 K 次训练课中 N 头奶牛的排名。我们需要找出所有”一致”的奶牛对,即其中一头奶牛在每次训练课 2025-11-20 Complete_Search
04_Counting_Liars 问题描述 USACO 2022 US Open Contest, Bronze Problem 2. Counting Liars https://usaco.org/index.php?page=viewproblem2&cpid=1228 农夫约翰有 N 头奶牛(不包括 Bessie)。每头牛给出一条关于 Bessie 躲藏位置的陈述: 若某头牛说 L :意思是 _Be 2025-11-20 Complete_Search
02_Diamond_Collector 问题描述 USACO 2016 US Open Contest, Bronze Problem 1. Diamond Collector https://usaco.org/index.php?page=viewproblem2&cpid=639 给定长度为 N 的数组和 K ,输出 subsequence 最长的长度,要求 subsequence 中任意两数之差不超过 K 。 2025-10-29 Complete_Search
01_Milk Pails 问题描述 USACO 2016 February Contest, Bronze Problem 1. Milk Pails https://usaco.org/index.php?page=viewproblem2&cpid=615 给定 X, Y, M ,求 aX + bY 不超过 M 的最大值,a, b 任意。 样例 输入 17 25 77 输出 76 思路 a 2025-10-29 Complete_Search
Graph 图 Graph 图 邻接表 python N, M = map(int, input().split()) adj = [[] for _ in range(N)] for i in range(M): u, v = map(int, input().split()) adj[u].append(v) adj[v].append(u) u = 1 # print number of v 2026-01-30 Graphs #图搜索算法 #DFS #BFS