暴力枚举
文章平均质量分 77
洛谷算法提单【算法1-3】暴力枚举
要减肥11
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
P2392 kkksc03考前临时抱佛脚
因此要开始刷习题集,每科都有一个习题集,分别有 s1,s2,s3,s4 道题目,完成每道题目需要一些时间,可能不等(A1,A2,…,As1,B1,B2,…,Bs2,C1,C2,…,Cs3,D1,D2,…,As1 共 s1 个数,表示第一科习题集每道题目所消耗的时间。本题包含 5 行数据:第 1 行,为四个正整数 s1,s2,s3,s4。第 5 行,为 D1,D2,…,Ds4 共 s4 个数,意思均同上。第 4 行,为 C1,C2,…原创 2025-07-23 16:20:09 · 715 阅读 · 0 评论 -
P1217 [USACO1.5] 回文质数 Prime Palindromes
该程序用于在给定范围[a,b]内找出所有回文质数(既是质数又是回文数的数字)。主要思路是:1)生成不同位数的回文数;2)检查生成的数字是否在给定范围内且为质数。程序通过分解数字前半部分并反转构造回文数,使用质数判断函数进行验证。输入两个正整数a和b,输出该范围内所有符合条件的回文质数,每行一个。算法优化了质数检查过程,避免不必要的计算。原创 2025-07-23 16:17:41 · 654 阅读 · 0 评论 -
P2036 [COCI 2008/2009 #2] PERKET
题目摘要: Perket美食需要选择配料,使总酸度(各配料酸度的乘积)与总苦度(各配料苦度的和)的绝对差最小。给定n种配料(1≤n≤10)的酸度s和苦度b,必须至少选择一种配料。使用DFS遍历所有可能的配料组合,计算每种组合的酸苦差并记录最小值。例如,输入3种配料(1,10)时输出7;输入2种配料(3,8)和(5,8)时输出1。算法时间复杂度为O(2^n),适用于n较小的情况。原创 2025-07-23 10:48:01 · 542 阅读 · 0 评论 -
P3799 小 Y 拼木棒
摘要:题目要求从n根不同长度的木棒中选出4根组成正三角形。解决方案为:统计各长度木棒出现次数,枚举可能的边长a,计算用两根a长度木棒作为底边的组合数,以及另外两根木棒长度之和等于a的组合数(考虑相等和不等两种情况)。最终将两种情况的组合数相乘累加,并对1e9+7取模。算法时间复杂度与木棒最大长度相关,适用于1≤n≤1e5的数据规模。原创 2025-07-23 10:40:40 · 901 阅读 · 0 评论 -
P1706 全排列问题
摘要:该程序使用回溯法生成1到n的全排列,并按字典序输出。通过递归函数bfs实现排列生成,利用数组st标记已使用数字,arr存储当前排列。每个数字输出占5个字符宽度,满足1≤n≤9的输入要求。时间复杂度为O(n!),适用于小规模排列生成。原创 2025-07-22 15:58:23 · 306 阅读 · 0 评论 -
P1149 [NOIP 2008 提高组] 火柴棒等式
该题目要求计算使用给定数量火柴棍能拼出的A+B=C等式数量。关键点包括:1) 预处理数字0-9的火柴消耗,并扩展到多位数;2) 使用DFS枚举可能的A、B、C组合;3) 满足A+B=C且总火柴消耗等于n-4(扣除加号和等号)。样例输入14输出2,输入18输出9,验证了算法的正确性。代码通过递归搜索所有可能组合,时间复杂度取决于n值和数字范围。该解法适用于n≤24的限制条件,通过优化数字范围(0-1000)确保效率。原创 2025-07-21 17:46:26 · 206 阅读 · 0 评论 -
P3654 First Step (ファーストステップ)
【题目摘要】 Aqours组合需要在R×C的篮球场矩阵中寻找连续K个空位(横竖均可)来排练。矩阵包含障碍物(#)和空地(.)。要求计算所有可能的1×K连续空地排列方式。 【输入输出】 输入:R,C,K和矩阵 输出:可行的站位总数 【示例】 输入5×5矩阵和K=2时,输出8种站位。 【数据范围】 1≤R,C≤100,1≤K≤min(R,C) 【核心问题】 遍历矩阵,统计所有横向/纵向连续的K个空地组成的有效站位数量。原创 2025-07-21 15:24:47 · 28 阅读 · 0 评论 -
P3392 涂条纹
本文研究了将N×M彩色格子旗帜转换为合法三色旗的最小涂改次数问题。合法旗要求从上到下依次为至少一行白色、蓝色和红色区域。提供了两种解法: 深度优先搜索(DFS)方法:通过递归遍历所有可能的颜色分段方案,计算每种方案所需涂改次数,保留最小值。预处理每行涂成白/蓝/红的代价,利用剪枝优化搜索过程。 前缀和方法:预处理每行涂色代价并建立前缀和数组,通过三重循环枚举所有可能的分段方案(白、蓝、红区域行数),利用前缀和快速计算总代价,时间复杂度为O(N²)。 两种方法均能正确求解,其中前缀和法效率更高。代码实现包含完原创 2025-07-21 14:45:57 · 138 阅读 · 0 评论 -
P1088 [NOIP 2004 普及组] 火星人
摘要:本文描述人类与火星人通过手指排列顺序表示数字的交流方式。火星人将N个手指的排列视为一个N位数,不同的排列对应不同的数值。给定初始排列和要加上的小整数M,需要找到按字典序排列的第M+1个排列作为结果。提供的C++代码使用深度优先搜索实现排列生成,在找到目标排列后输出。算法复杂度为O(N!),适用于N较小的场景。输入样例展示了5根手指初始排列12345加1后得到12453的过程。原创 2025-07-21 14:01:12 · 37 阅读 · 0 评论 -
P1157 组合的输出
本文介绍了如何使用深度优先搜索(DFS)算法生成从1到n中选取r个数的所有组合。输入为两个自然数n和r(1<n<21,0≤r≤n),输出所有按字典序排列的组合,每个数字占3个字符宽度。代码通过递归实现DFS,在每一层选择当前数字后继续向后搜索,确保组合严格升序排列。该方法保证了输出结果符合题目要求的格式和顺序。示例展示了当输入5 3时,程序正确输出所有10种3位数的组合,每个数字右对齐占3位宽度。原创 2025-07-21 11:23:37 · 27 阅读 · 0 评论 -
P1036 [NOIP 2002 普及组] 选数
该程序从给定的n个整数中选取k个数的所有组合,计算这些组合的和是否为素数,最后统计素数和的个数。使用DFS生成组合,通过剪枝优化效率,并调用isprime函数判断素数。输入为整数个数n和选取数k,以及n个整数;输出为素数和的数量。示例输入n=4,k=3,整数为3,7,12,19时,输出1(3+7+19=29是素数)。该算法适用于小规模数据(n≤20)。原创 2025-07-21 11:18:03 · 125 阅读 · 0 评论 -
P1618 三连击(升级版)
摘要 题目要求将数字1-9分成三组,组成三个三位数,使其比例为A:B:C。给出两种解法:1)深度优先搜索遍历所有排列组合,但存在超时问题;2)更优解法通过比例系数k生成候选数,检查是否满足条件。第二种方法效率更高,通过遍历可能的k值(保证三位数在100-999之间),验证生成的三个数是否使用1-9各一次且无重复。若无解则输出"No!!!"。样例输入1:2:3时输出四组解,按首数字升序排列。原创 2025-07-21 11:08:18 · 152 阅读 · 0 评论 -
P2089 烤鸡
该题目要求计算10种配料(每种1-3克)组合成给定美味程度n的所有方案。使用深度优先搜索(DFS)遍历所有可能的配料组合,当10种配料总和等于n时记录方案。最终输出方案总数及所有方案(按字典序排列)。对于n=11的样例,共有10种方案,均为9个1克和1个2克的排列组合。算法时间复杂度为O(3^10),在给定数据范围内可行。若无解则输出0。原创 2025-07-21 10:33:12 · 31 阅读 · 0 评论 -
P2241 统计方形(数据加强版)
摘要:该题目要求计算n×m棋盘中的正方形和长方形(不含正方形)数量。通过数学推导,正方形总数通过累加不同边长的可能正方形数量得到,而长方形总数则通过组合公式计算所有矩形后减去正方形数量得出。输入两个正整数n和m(≤5000),输出两个结果。示例输入2 3时输出8个正方形和10个长方形(不含正方形)。代码使用循环计算正方形,组合公式计算矩形,最后作差得到结果。原创 2025-07-21 10:31:48 · 38 阅读 · 0 评论
分享