自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线性dp(合唱队题型)

k ,k,k,他们的身高分别为 t 1 , t 2 , t_1,t_2,t。,则他们的身高满足 t 1 < ⋯ < t i > t i + 1 > t_1< \cdots <t_i>t_{i+1}>t。n nn 位同学站成一排,音乐老师要请其中的 n − k n-kn−k 位同学出列,使得剩下的 k kk 位同学排成合唱队形。你的任务是,已知所有 n nn 位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。对于全部的数据,保证有 n ≤ 100 n \le 100n≤10。

2024-03-03 13:40:26 432

原创 数论,暴力枚举

首先,我们需要找到一个满足条件的数组,其中相邻元素的差值是相等的。根据题目描述,我们可以知道这样的数组一定存在。接下来,我们需要找到满足条件的数组中最小可能的最大元素。一旦找到满足条件的数组,我们可以将其输出作为答案。

2024-02-16 22:13:36 334 1

原创 贪心,暴力枚举

首先,我们可以遍历数组,找到数组中的最小值和最大值。然后我们尝试将其他元素都变为最小值或最大值,计算出每种情况下的代价,最后取其中的最小值作为最少需要花费的代价。这是一个算法问题,需要找到一种操作方法,使得将数组中的所有元素变为相等所需的最小代价。对于每个测试用例,我们需要输出使数组中所有元素相等所需的最小代价。

2024-02-15 22:24:31 254 1

原创 算法再次实现平等

要使数组中的所有元素相等,可以考虑将所有元素的平均值作为目标值。遍历整个数组,统计每个元素与目标值之间的差值的绝对值之和,即为所需的最小花费。

2024-02-13 23:15:26 257 1

原创 贪心(greedy)数据结构 codreforce*1100

为了解决这个问题,我们可以使用一个哈希集合(HashSet)来存储列车路线中的所有车站。然后,对于每个查询,我们只需要检查起始车站和目标车站是否都在哈希集合中即可确定是否可以从起始车站乘坐火车到达目标车站。如果起始车站aj和目标车站bj都在trainRoute中,输出"YES"。读取列车路线的n个车站,并将它们添加到trainRoute中。对于每个查询,读取起始车站索引aj和目标车站索引bj。创建一个空的哈希集合trainRoute。读取列车路线的车站数量n和查询数量k。读取输入的测试用例数量t。

2024-02-12 22:58:34 216 1

原创 暴力枚举 构造算法 贪心 *1400

那么问题就转化成了如何找到后面最大的比当前位置大的数。可以使用单调栈实现,维护一个单调递减的栈,遇到比栈顶元素大的数就弹出栈顶并记录答案。这样就可以一步步将所有比后面元素小的元素移到最右侧,最终得到字典序最大的排列。,我们应该把它和后面最大的比它大的数交换,这样可以保证得到的排列字典序最大。有比后面元素小的元素移到最右侧,最终得到字典序最大的排列。接下来考虑如何利用上述操作将排列变成字典序最大的。请你输出通过上述操作能够得到的字典序最大的排列。,如果将其翻转,再把前后两部分交换,相当于把。

2024-02-11 23:03:07 256 1

原创 math implementation codeforce*1300

如果满足,我们需要继续判断。设当前已经确定了前i个元素,它们的前缀和为sum,而第i+1个元素的值为x,则当x>sum时,这个问题无解,因为此时再加上后面的元素,前缀和就会大于x。因此,我们需要在数组中找到第一个大于sum的元素,判断它与x是否相等。首先可以想到,如果这个问题有解,那么这个数组的最大值一定是n*(n+1)/2(因为是前缀和数组,每个元素都不小于前面的元素),最小值一定是1。我们可以根据前缀和数组的性质,判断是否存在一个1~n的排列,使得该排列的前缀和对应于给定的前缀和数组(即求逆问题)。

2024-02-10 23:04:30 129

原创 【无标题】二分搜索(binary search)构造算法(constructive algorithms)

本题目我们需要找到一个最小的整数 k,使得在每个移动步骤中,玩家都能在当前段内移动。为了实现这一点,我们可以观察到玩家在每个段内的移动范围应该是当前段的长度加上前一段的长度减去它们的重叠部分的长度。因此,我们只需要找到每个段与前一段的重叠部分的最大长度,然后取所有段之间重叠部分长度的最。这段代码按照上述算法逐步计算重叠部分的长度,并输出最小的 k 值。

2024-02-08 22:17:25 614

原创 轴对称问题

接下来,在每次查询中,程序读取图像的坐标(i、j)、通道值(t)和颜色增量值(c)。然后,它对应的图像数组元素进行更新,并调用函数check_symmetry来检查图像是否对称。如果图像水平方向上存在不对称的部分,则返回"No";函数check_symmetry遍历图像的每一行,对每一行的像素进行检查。它比较像素的左右两侧的通道值,如果存在不相等的情况,则表示图像不对称,返回"No"。首先,程序读取输入的图像大小(n、m)和查询次数(q)。然后,它创建一个三维的图像数组image,用于存储图像的RGB值。

2024-02-07 21:31:05 218 1

原创 哈夫曼树的生成

要先实现代码编写哈夫曼树,就要先做到了解哈夫曼树,相信大多数人在学习数据结构时已经学习过看离散数学。哈夫曼树的核心算法在每次存取时找出最小的两个节点。(本文章下标是从1开始)本up主是新人小白以下讲解若有误请多指教。

2023-10-28 17:37:22 42

空空如也

空空如也

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

TA关注的人

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