自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第七轮题目(图论)

首先初始化图结构和变量,然后对每个测试用例,添加正向边并运行SPFA,再添加反向边并再次运行SPFA,最后输出两次计算的距离之和。首先,它遍历树找到最远节点和次远节点(即树的中心附近),然后再次从该中心节点遍历以找到最远距离,即树的直径,并输出结果。通过DFS遍历树,计算每个节点为根时其子树的最大和次大节点数,最终选择根节点使得其最大子树节点数最小,并输出该最小值。通过DFS遍历树,动态规划计算每个节点为根的子树中选择不同数量节点时的最大权值和,最终输出根节点处选择m个节点的结果。

2025-02-17 23:46:58 431

原创 第六轮题目(动态规划初步)

首先输入物品总数m和背包容量t,然后输入每个物品的重量w和价值v。通过动态规划数组dp记录最大价值,最终输出在不超过背包容量t的情况下,可以装入背包的物品的最大总价值。然后,使用动态规划方法,遍历每个拆分后的物品和容量限制,更新最大价值。记录每个元素的位置,然后对每个查询元素找到其出现位置后,通过二分查找确定其右侧第一个未覆盖位置,并更新该位置为当前元素位置(取最小)。将序列中的数作为“物品”,出现次数作为“数量”,利用动态规划求解最长可拆分出的不重复“物品”序列长度,最终输出无法拆分的“物品”种类数。

2025-02-15 19:27:39 158

原创 第五轮题目(搜索)

通过递归尝试不同选择,记录最小操作次数及对应的选择序列,最终输出最小操作次数(减1,因从0开始计数)及选择序列。通过DFS遍历矩阵,判断相邻元素大小关系。否则,对每个未访问元素发起DFS,标记访问并比较相邻值,统计较大值连续区域数(ans1)和较小值连续区域数(ans2),最后输出两者。它首先读取网格大小及状态,然后利用队列存储'1'的位置,逐层向外扩展,更新距离数组,最后输出每个位置到最近'1'的距离。从外面的0开始广搜找到所有外面的0并染色(赋值2),若没有外面的0则手动加一圈,最后输出2-里面的0。

2025-02-11 18:10:55 265

原创 第四轮题目(数论)

根据题目一段区间的互质区间数为R-L,还要1自己单独有1一个互质区间,所以对于左边界为1的情况,如果右边界为1就为1,大于1为r,结果为r-1。使用欧拉筛选法x=p*i,其中p是x的最小素因子,对于每一个素数p和一个最小素因子大于等于p的正整数i(i>1),将p*i标记为合数。通过统计数字出现频率,计算每个数的约数和出现频率,找到最大频率的约数和对应的数及其索引。在gcd函数中用辗转相除法找到最小公倍数,然后在循环中找到满足条件答案的个数。根据费马小定理,使用快速读入,注意b=0时无解的情况。

2025-02-10 15:41:30 168

原创 第三轮题目(栈)

使用公式 index = (index + m - 1) % n 计算当前被移出的人的索引,将 people[index] 的值添加到 result 中,使用 people.erase(people.begin() + index) 将被移出的人从 people 中移除,将 n 减 1,表示圈内人数减少 1。输入使用快速读入,这里的 k 表示稀疏表的行数,每一行对应一个区间长度 2i,稀疏表的第一行直接存储数组 nums 的值,即 table[0][i] = nums[i]。

2025-02-06 23:03:33 522

原创 第二轮题目(二分法)

先用sort函数将数列排序,然后在循环中用r1指向满足条件数的最左端,r2指向最右端,count记录每次的r1-r2。check函数判断每个人最多抄写页数是否满足条件,用二分找到用时最少时间,然后再方向存入每个人抄写书的编号。check函数判断此跳跃能力是否满足青蛙过河条件,在二分法中快速找到所需最低跳跃能力。check函数判断此次凑牌套数是否满足条件,用二分来找到最多凑牌套数。check函数判断此次边长是否满足条件,用二分来取最大可能边长。check函数为二分查找。

2025-01-25 18:52:16 260

原创 第一轮题目

用f数组来记录行,g数组记录列,在每一个交换字符op中,仅仅交换f与g数组的位置,然后在两次的循环中,用一个中转二维数值b[][]来将行与列的替换体现到原数组a[][]中。将输入的大小写不同的yes全转换成大写的英文字母,然后和“YES”用strcmp函数进行比较,若相同则输出YES,否则输出NO。先在双重循环内判断每日的规则是否符合民意,若符合则计数pos+1,再用pos与天数的一半相比,若大于等于则此规则正确。用fa字符串来记录实际被替换的字母,最后再顺序输出fa数组即为替换过后的字符串。

2025-01-23 00:01:44 1444 1

空空如也

空空如也

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

TA关注的人

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