自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 收藏
  • 关注

原创 [C++][算法基础]滑雪(记忆化搜索 / 递归)

给定一个 𝑅 行 𝐶 列的矩阵,表示一个矩形网格滑雪场。矩阵中第 𝑖 行第 𝑗 列的点表示滑雪场的第 𝑖 行第 𝑗 列区域的高度。一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。在给定矩阵中,一条可行的滑行轨迹为 24−17−2−1。在给定矩阵中,最长的滑行轨迹为 25−24−23−…−3−2−1,沿途共经过 25 个区域。

2024-04-28 16:03:15 52

原创 [C++][算法基础]没有上司的舞会(树形动态规划)

Ural 大学有 N𝑁 名职员,编号为 1∼𝑁。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 𝐻𝑖 给出,其中 1≤𝑖≤𝑁。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。

2024-04-28 16:01:24 54

原创 [C++][算法基础]最短汉密尔顿路径(状态压缩动态规划)

给定一张 𝑛 个点的带权无向图,点从 0∼𝑛−1 标号,求起点 0 到终点 𝑛−1 的最短 Hamilton 路径。Hamilton 路径的定义是从 0 到 𝑛−1 不重不漏地经过每个点恰好一次。

2024-04-28 15:59:35 21

原创 [C++][算法基础]蒙特里安的梦想(状态压缩动态规划)

求把 𝑁×𝑀 的棋盘分割成若干个 1×2 的长方形,有多少种方案。例如当 𝑁=2,𝑀=4 时,共有 5 种方案。当 𝑁=2,𝑀=3 时,共有 3 种方案。

2024-04-28 15:57:33 29

原创 [C++][算法基础]计数问题(数位统计动态规划)

给定两个整数 𝑎 和 𝑏,求 𝑎 和 𝑏 之间的所有数字中 0∼9 的出现次数。其中0出现 10 次,1出现 10 次,2出现 7 次,3出现 3 次等等…

2024-04-28 15:55:21 21

原创 [C++][算法基础]整数划分(统计动态规划)

一个正整数 𝑛 可以表示成若干个正整数之和,形如:𝑛=𝑛1+𝑛2+…+𝑛𝑘,其中 𝑛1≥𝑛2≥…≥𝑛𝑘,𝑘≥1。我们将这样的一种表示称为正整数 𝑛 的一种划分。现在给定一个正整数 𝑛,请你求出 𝑛 共有多少种不同的划分方法。

2024-04-28 15:52:35 113

原创 [C++][算法基础]石子合并(区间动态规划)

设有 𝑁 堆石子排成一排,其编号为 1,2,3,…,𝑁。每堆石子有一定的质量,可以用一个整数来描述,现在要将这 𝑁 堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有 4 堆石子分别为1 3 5 2, 我们可以先合并 1、2 堆,代价为 4,得到4 5 2, 又合并 1、2 堆,代价为 9,得到9 2,再合并得到 11,总代价为 4+9+11=24;

2024-04-28 15:42:30 86

原创 [C++][算法基础]编辑距离问题(动态规划)

1. 最短编辑距离问题现在请你求出,将 𝐴 变为 𝐵 至少需要进行多少次操作。

2024-04-26 20:44:24 248

原创 [C++][算法基础]最长公共子序列(动态规划)

给定两个长度分别为 𝑁 和 𝑀 的字符串 𝐴 和 𝐵,求既是 𝐴 的子序列又是 𝐵 的子序列的字符串长度最长是多少。

2024-04-26 20:41:01 148

原创 [C++][算法基础]最长上升子序列(动态规划 / 贪心 + 二分)

1. 数据量较小情况下:动态规划给定一个长度为 𝑁 的数列,求数值严格单调递增的子序列的长度最长是多少。

2024-04-26 20:39:20 202

原创 [C++][算法基础]数字三角形(动态规划)

给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。

2024-04-26 20:36:16 95

原创 [C++][算法基础]分组背包问题(动态规划)

有 𝑁 组物品和一个容量是 𝑉 的背包。每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是,价值是,其中 𝑖 是组号,𝑗 是组内编号。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。

2024-04-25 23:15:19 295

原创 [C++][算法基础]多重背包问题(动态规划)

有 𝑁 种物品和一个容量是 𝑉 的背包。第 𝑖 种物品最多有 𝑠𝑖 件,每件体积是 𝑣𝑖,价值是 𝑤𝑖。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。

2024-04-25 23:12:00 227

原创 [C++][算法基础]完全背包问题(动态规划)

有 𝑁 种物品和一个容量是 𝑉 的背包,每种物品都有无限件可用。第 𝑖 种物品的体积是 𝑣𝑖,价值是 𝑤𝑖。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。

2024-04-25 23:07:23 119

原创 [C++][算法基础]01背包问题(动态规划)

有 𝑁 件物品和一个容量是 𝑉 的背包。每件物品只能使用一次。第 𝑖 件物品的体积是 𝑣𝑖,价值是 𝑤𝑖。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。

2024-04-25 22:53:05 152

原创 [C++][算法基础]解异或线性方程组(高斯消元)

输入一个包含 𝑛 个方程 𝑛 个未知数的异或线性方程组。方程组中的系数和常数为 0 或 1,每个未知数的取值也为 0 或 1。求解这个方程组。其中表示异或(𝑋𝑂𝑅),𝑀[𝑖][𝑗] 表示第 𝑖 个式子中 𝑥[𝑗] 的系数,𝐵[𝑖] 是第 𝑖 个方程右端的常数,取值均为 0 或 1。

2024-04-24 22:50:36 113

原创 [C++][算法基础]解线性方程组(高斯消元)

输入一个包含 𝑛 个方程 𝑛 个未知数的线性方程组。方程组中的系数为实数。求解这个方程组。

2024-04-24 22:48:43 306

原创 [C++][算法基础]拆分-Nim游戏(博弈论)

给定 𝑛 堆石子,两位玩家轮流操作,每次操作可以取走其中的一堆石子,然后放入两堆的石子(新堆规模可以为 0,且两个新堆的石子总数可以大于取走的那堆石子数),最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。

2024-04-24 19:50:18 529

原创 [C++][算法基础]集合-Nim游戏(博弈论)

给定 𝑛 堆石子以及一个由 𝑘 个不同正整数构成的数字集合 𝑆。现在有两位玩家轮流操作,每次操作可以从任意一堆石子中拿取石子,每次拿取的石子数量必须包含于集合 𝑆,最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。

2024-04-24 19:49:02 210

原创 [C++][算法基础]台阶-Nim游戏(博弈论)

现在,有一个 𝑛 级台阶的楼梯,每级台阶上都有若干个石子,其中第 𝑖 级台阶上有 𝑎𝑖 个石子(𝑖≥1)。两位玩家轮流操作,每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶中(不能不拿)。已经拿到地面上的石子不能再拿,最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。

2024-04-24 19:47:24 195

原创 [C++][算法基础]Nim游戏(博弈论)

给定 𝑛 堆石子,两位玩家轮流操作,每次操作可以从任意一堆石子中拿走任意数量的石子(可以拿完,但不能不拿),最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。

2024-04-24 19:46:02 141

原创 [C++][算法基础]能被整除的数(容斥原理)

给定一个整数 𝑛 和 𝑚 个不同的质数 𝑝1,𝑝2,…,𝑝𝑚。请你求出 1∼𝑛 中能被 𝑝1,𝑝2,…,𝑝𝑚 中的至少一个数整除的整数有多少个。

2024-04-24 01:08:09 365

原创 [C++][算法基础]求组合数(IV)

输入 𝑎,𝑏,求的值。注意结果可能很大,需要使用高精度计算。

2024-04-22 20:23:45 457

原创 [C++][算法基础]求组合数(III)

给定 𝑛 组询问,每组询问给定三个整数 𝑎,𝑏,𝑝,其中 𝑝 是质数,请你输出的值。

2024-04-22 18:29:32 296

原创 [C++][算法基础]求组合数(II)

给定 𝑛 组询问,每组询问给定两个整数 𝑎,𝑏,请你输出的值。

2024-04-22 18:08:33 218

原创 [C++][算法基础]求组合数(I)

给定 𝑛 组询问,每组询问给定两个整数 𝑎,𝑏,请你输出的值。

2024-04-22 17:34:27 237

原创 [C++][算法基础]线性同余方程(扩展欧几里得算法)

给定 𝑛 组数据 𝑎𝑖,𝑏𝑖,𝑚𝑖,对于每组数求出一个 𝑥𝑖,使其满足 𝑎𝑖×𝑥𝑖 ≡ 𝑏𝑖(mod𝑚𝑖),如果无解则输出impossible。

2024-04-21 16:46:19 216

原创 [C++][算法基础]扩展欧几里得算法

给定 𝑛 对正整数 𝑎𝑖,𝑏𝑖,对于每对数,求出一组 𝑥𝑖,𝑦𝑖,使其满足 𝑎𝑖×𝑥𝑖+𝑏𝑖×𝑦𝑖=𝑔𝑐𝑑(𝑎𝑖,𝑏𝑖)。

2024-04-21 16:44:08 248

原创 [C++][算法基础]求乘法逆元(快速幂)

若整数 b,m 互质,并且对于任意的整数 a,如果满足 b|a,则存在一个整数 x,使得,则称 x 为 b 的模 m 乘法逆元,记为。b 存在乘法逆元的充要条件是 b 与模数 m 互质。当模数 m 为质数时,即为 b 的乘法逆元。

2024-04-20 17:31:48 189

原创 [C++][算法基础]求a的b次方模p的值(快速幂)

给定 n 组,对于每组数据,求出的值。

2024-04-20 17:21:28 271

原创 [C++][算法基础]欧拉函数(线性筛)

给定一个正整数 n,求 1∼n 中每个数的欧拉函数之和。

2024-04-19 21:35:02 336

原创 [C++][算法基础]欧拉函数(常规求质数)

1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N)。若在算数基本定理中,N=,则:ϕ(N) = N×××…×。

2024-04-19 21:33:51 177

原创 [C++][算法基础]最大公约数(欧几里得算法)

给定 n 对正整数,请你求出每对数的最大公约数。

2024-04-18 14:01:04 320

原创 [C++][算法基础]求约数之和

给定 n 个正整数,请你输出这些数的乘积的约数之和,答案对+7 取模。

2024-04-18 13:58:49 262

原创 [C++][算法基础]求约数个数

给定 n 个正整数,请你输出这些数的乘积的约数个数,答案对+7 取模。

2024-04-18 13:56:43 214

原创 [C++][算法基础]求约数(试除法)

给定 n 个正整数,对于每个整数,请你按照从小到大的顺序输出它的所有约数。

2024-04-18 13:54:15 285

原创 [C++][算法基础]筛选质数(线性筛)

给定一个正整数 n,请你求出 1∼n 中质数的个数。

2024-04-17 14:14:41 705

原创 [C++][算法基础]筛选质数(埃氏筛)

给定一个正整数 n,请你求出 1∼n 中质数的个数。

2024-04-17 14:13:35 434

原创 [C++][算法基础]分解质因数(试除法)

给定 n 个正整数 ai,将每个数分解质因数,并按照质因数从小到大的顺序输出每个质因数的底数和指数。

2024-04-17 14:11:44 170

原创 [C++][算法基础]判定质数(试除法)

给定 n 个正整数 ai,判定每个数是否是质数。

2024-04-17 14:10:05 467

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除