减法操作
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$。…
浅谈 C/C++ 的输入输出
0. 叠甲,过 本人水平有限,语言组织能力低下,不保证绝佳的阅读体验,也不保证内容完全准确,如有错误和建议,欢迎指出。才怪。 1. 谈谈输入输出缓冲区 1.1 基本概念 你先别急,我知道你很急,但是别急,所以你先别急。 在了解输入输出输出缓冲区时,需要明确以下几个基本概念: 输入输出流 标准输入输出…
ABC的整除问题
原题链接 描述: 给定三个非负整数 $A,B,C$,且保证 $A\le B,C\ne 0$,求在区间 $[A, B]$ 中,存在多少个整数可以被 $C$ 整除? 输入格式: 第一行,一个整数 $T$,代表 $T$ 个测试样例。 接下来 $T$ 行,每行给出三个非负整数 $A,B,C$。 输出格式: …