分类: Q&A

Some good questions’answer

88 篇文章

九宫幻方
Original Link 思想: 极致的暴力,极致的享受。 将九宫格,去除中间的 $5$ 后转换为一维 string 来记录; 列举出所有的情况,进行枚举比较,合法则方案加一。 转换方法如下: 对于九宫格: 4 9 2 3 5 7 8 1 6 去掉 5 后,顺时针螺旋排列为 4 9 2 7 6 1…
高手去散步
Original Link 思想: DFS。 题目所给出的路径可以连接为一个无向图。 则利用邻接矩阵来存图,从 $1$ 号点开始,深度优先遍历所有的点。 走过的路径长度用 cnt 保存,最后维护最长的 res 即可。 代码: #include <iostream> #include &l…
减法操作
Original Link 思想: 贪心。 对于 a[i],优先使其进行 -2 的操作; 若 a[i] % 2 != 0,则说明需要进行 -1 的操作,此时进行判断: 若 a[i + 1] > 0,则将 a[i + 1] --,此时可以使得 a[i] 操作后变为 $0$。 否则无法使得 a[i…
两个素数
Original Link 思想: 算术基本定理。 任何一个大于 $1$ 的自然数 $N$,如果 $N$ 不为质数: 则 $N$ 可以唯一分解成有限个质数的乘积 $N=p_1^{a_1}\times p_2^{a_2}\dots\times p_i^{a_k}$,且最多只有一个大于 $\sqrt{n…
优质牛肋骨
Original Link 思想: DFS。 从小到大依次枚举所有的数显然不现实,因此考虑按位枚举。 枚举从最高位开始,之后枚举每一位的数,直到达到指定位数为止。 枚举每一位后,需要判断当前位的数和高位数的组合数是否为质数,只有如此才能满足条件。 举例说明对于 $7331$ 的枚举过程: 第一位为 …
字母
Original Link 思想: DFS。 由题意易知,从左上角的字母开始搜索,最多经过 $26$ 个不同的字母。 则将走过的字母利用 vis 数组进行标记,若走过标记为 True。 递归处理每一个格子,每一层利用偏移量数组遍历上下左右四个方向。 用 res 维护最大可以走过的不同字母的个数,每次…
马蹄铁
Original Link 思想: DFS。 要想使得串保持平衡,即 (((((....))))) 形式,则设 p 为 ( 的数量,q 为 ) 的数量。 特别的,起始时为 ) 无论如何搜索都无法平衡,最大长度为 $0$。 在搜索时,当 q != 0 时,若下次出现 ( ,此时为 (()(... 亦不…
棋盘挑战
Original Link 思想: DFS。 注意棋盘的每一行,每一列及其有棋子存在的对角线的平行线上有且只有一个棋子。 递归处理,每一次递视为一次对是否放置棋子的判断,递归的层数视为棋盘的层数,每一层只能放置一个棋子。 对于递归的每一层,遍历这层棋盘的格子,判断以该格子的列和对角线的平行线上是否存…
数组操作
Origional Link 思想: 贪心,模拟。 首先对数组进行从小到大排序,再找到第一个 a[idx] != 0 的位置。 对于每次询问,以 base 记录当前数组已经减去的总值,判断时应当计算当前元素与 base 的差值。 若 a[idx] - base > 0 说明需要将后续所有元素减…
货仓选址
Origional Link 思想: 贪心。 设仓库选址最佳处为 $P$,此时在该位置左侧存在 $m$ 个货仓,右侧存在 $n$ 个货仓,总距离为 $L$。 若更改货仓位置为 $P-1$,则总长度变为 $L - m + n$。 若更改货仓位置为 $P + 1$,则总长度变为 $L + m - n$。…