小海胆胆
小海胆胆
全部文章
分类
未归档(3)
题解(20)
归档
标签
去牛客网
登录
/
注册
小海胆胆的博客
全部文章
(共94篇)
题解 | #复杂的最大公约数#
BGN46 复杂的最大公约数 思路 题目要求:给定两个整数 和 ,输出它们的最大公约数(GCD)。 求最大公约数,最经典的方法是什么?没错,就是辗转相除法(欧几里得算法)。 核心思想其实很简单:,不断地用较大的数对较小的数取模,直到其中一个变成 0,另一个就是答案。 举个例子,: 三步就搞定...
2026-03-10
0
9
题解 | #矩形游戏#
BGN48 矩形游戏 思路 题目说的是一个石子游戏:起初有 颗石子,每次操作把石子排成 的矩形(),然后只留下一行( 颗),其余全丢掉。反复操作直到剩 1 颗,把过程中每次的石子数(包括初始的 和最后的 )加起来,求最大得分。 说白了,每次操作就是把当前数 替换成它的一个真因子 (因为 ,所...
2026-03-10
0
11
题解 | #几乎是质数#
几乎是质数 思路 题目在说什么?给定正整数 ,求区间 中恰好有两个不同质因子的数的个数。比如 有两个不同质因子,是"几乎是质数"; 只有一个质因子,不算; 有三个,也不算。 那怎么高效统计每个数有多少个不同的质因子呢? 关键观察 暴力对每个数做质因数分解是 ,太慢。换个角度想...
2026-03-10
0
8
题解 | #最大公因数与最小公倍数#
最大公因数与最小公倍数 思路 给两个正整数,求它们的最大公因数(GCD)和最小公倍数(LCM)。 最大公因数 用欧几里得算法(辗转相除法):,当 时 。 最小公倍数 有公式:。 为了防止溢出,先除再乘:a / gcd * b。 代码 C++ Java Python3 JavaSc...
2026-03-10
0
14
题解 | #完美异或#
BGN83 完美异或 思路 题目要求构造一个长度为 的非递减数组,使得所有元素的异或和是 的因子。如果无法构造就输出 -1。 先想想,有没有什么万能的构造方法? 关键观察 我们可以用大量的 1 来"填充"数组,然后在末尾放一个较大的数来调整异或和。 具体来说:前 个元素都是...
2026-03-10
0
7
题解 | #判断质数#
BGN41 判断质数 思路 题目很直白:给你一个正整数 ,判断它是不是质数,是的话输出 Yes,否则输出 No。 那什么是质数?大于 1 的整数,且只能被 1 和自身整除。 怎么判断呢?最朴素的方法是从 2 遍历到 ,看有没有能整除 的数。但这样太慢了,有没有更快的办法? 试除法优化 关键观察:如...
2026-03-10
0
9
题解 | #谐距下标对#
BGN27 谐距下标对 思路 先想一个问题:什么叫"谐距"?题目说的是下标 ,满足 ,也就是两个元素的"值的差"恰好等于"下标的差"。你可以理解成:如果把数组画在坐标系上,这两个点刚好在同一条斜率为 1 的直线上。 那怎么找这样的下标对呢?...
2026-03-10
0
7
题解 | #构造数对#
BGN73 构造数对 思路 这题看起来条件挺多,我们来逐个拆解。要找一对正整数 满足: (b 整除 a) 条件这么多,别慌,先想想有没有什么特殊构造能一把全满足。 关键观察:取 。 验证一下: ✓ ✓(自己整除自己) ,当 时成立 ✓ ,当 时成立 ✓ 所以只要 , 就是一组...
2026-03-10
0
6
题解 | #构造数独#
构造数独 思路 题目要求构造一个 的非负整数矩阵,使得每行每列的和都等于 。 最直接的想法:先均匀分配,再处理余数。 设 ,。如果所有格子都填 ,那么每行每列的和是 ,还差 。 怎么把每行每列各补上 呢?只需要在每行恰好选 个格子加 1,同时保证每列也恰好被选中 次。 用循环移位就能优雅地搞...
2026-03-10
0
6
题解 | #交换到最大#
交换到最大 思路 操作的本质是:选一个非首位、非零的数字,减 1 后和左邻交换。反复操作就是把一个数字 往左移 步,代价是值减少 ,到达后变成 (需要 )。 关键观察:数字最大是 9,所以任何数字最多只能左移 9 步。 这意味着对于结果的第 位,候选人只来自剩余数字序列中的前 10 个元素。贪...
2026-03-10
0
7
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页