- 博客(19)
- 收藏
- 关注
原创 寒假专题训练7
先读入节点数和边信息,构建无向图的邻接表。用深度优先搜索遍历树,对每个节点计算放置与不放置士兵时子树所需最少士兵数,最后取根节点两种情况的最小值作为结果输出。第一次 DFS 从节点 1 开始,找出离它最远节点。再从该最远节点进行第二次 DFS,找出新的最远节点,这两节点路径为直径,记录边数输出,实现树直径边数计算。遍历各节点作为起点,若能连通所有节点,记录最大传递时间,选最小者及对应起点,若都不连通则输出。2.先读取树的节点数与边信息,用邻接表。存图,初始将对角线置 0,其余为。
2025-02-18 20:52:20
179
原创 寒假专题训练6
1.此题要解决最大子数组和问题。先读入序列长度与元素存于向量。将当前最大和与全局最大和初始化为首元素。从第二个元素起遍历,用 决定当前最大和是从当前元素重新开始,还是延续前子数组,同时更新全局最大和,最后输出结果。2.题目要求在总时间 内选择若干物品,使得总价值最大。每个物品有耗时 和价值 。:用 表示在时间 内能获得的最大价值。初始化 数组为 0。对于每个物品,从 倒序遍历到 ,更新 为 ,确保每个物品只选一次。将 数组大小设为 ,避免越界。最终 即为在时间 内能获得的最大价值
2025-02-16 21:59:55
201
原创 专题训练五
这次专题学习了广度优先搜索和深度优先搜索,感觉难度还是有点大的。之前的递归也觉得学的不好是很好,只好借助ai多问问了。3.利用广度优先搜索(BFS)计算每个像素到最近白色像素的距离。先读入矩阵大小与像素信息,将白色像素距离设为 0 并加入队列,黑色设为 -1。的矩阵,然后从边界上值为 0 的点开始 DFS,标记可到达的 0 点。最后,将未标记的 0 点改为 2,输出修改后的矩阵。2.通过深度优先搜索(DFS)标记与边界连通的 0 区域。为 0 且数组元素超 1 个时输出拆分组合。数组,递归处理剩余的。
2025-02-12 19:38:08
223
原创 显示图像 。
当计算机发出一个指令:P(x,y)=1,则屏幕上的第 x 行第 y 列的阴极射线管就开始工作,使该像素点显示白色,若 P(x,y)=0,则对应位置的阴极射线管不工作,像素点保持黑色。在某一时刻,计算机发出显示命令后,科学家们期望知道,每个像素点和其最近的显示白色的像素点之间的最短距离是多少——科学家们保证屏幕上至少有一个显示白色的像素点。上面的例子中,像素 P(1,1) 与最近的白色像素点之间的距离为 3,而像素 P(3,2)本身显示白色,所以最短距离为 0。以下 N 行,每行 M 个数字,0 或 1。
2025-02-12 19:31:32
509
原创 填涂颜色。
由数字 0 组成的方阵中,有一任意形状的由数字 1 构成的闭合圈。的矩阵,然后从边界上值为 0 的点开始 DFS,标记可到达的 0 点。最后,将未标记的 0 点改为 2,输出修改后的矩阵。如果从某个 0 出发,只向上下左右 4 个方向移动且仅经过其他 0 的情况下,无法到达方阵的边界,就认为这个 0。接下来 n 行,由 0 和 1 组成的 n×n 的方阵。闭合圈不一定是环形的,可以是任意形状,但保证。的 0 是连通的(两两之间可以相互到达)。对于 100% 的数据,1≤n≤30。
2025-02-12 19:27:22
337
原创 自然数的拆分问题
任何一个大于 的自然数 n,总可以拆分成若干个小于 n 的自然数之和。现在给你一个自然数 n,要求你求出 n 的拆分成一些数字的和。每个拆分后的序列中的数字从小到大排序。然后你需要输出这些序列,其中字典序小的序列需要优先输出。为 0 且数组元素超 1 个时输出拆分组合。拆分成若干正整数之和并输出拆分结果。输入:待拆分的自然数 n。输出:若干数的加法式子。数组,递归处理剩余的。数据保证,2≤n≤8。使用递归回溯法将整数。
2025-02-12 19:25:18
293
原创 专题训练四
讲义看不懂一点啊这,除了第二题 一题做不出来,不是超时就是内存大了,再给我一万年自己也写不出来,已尽力。然后计算这个区间内满足特定条件的元素数量。针对每组输入,程序会输出计算得到的数量,每组结果占一行。对于每组输入,程序读取两个长整型数。,它们定义了一个区间。
2025-02-10 23:04:27
164
原创 寒假集训课专题三
题目要求计算一系列数字按照特定合并规则所产生的总代价。我们利用最小堆来不断合并最小的两个数字,每次合并的结果会重新放入堆中,同时累加合并的代价,直到堆中只剩下一个元素。此代码运用 ST 表(Sparse Table)算法求解区间最大值。先读取数据构建表,再利用动态规划预处理,最后对查询区间输出最大元素。的整数依次加入队列,代表每个人的编号。只要队列不为空,就继续进行报数和出列操作。每次循环报数加 1。当队列中所有人都出列后,程序正常结束。输出并移除最大元素,遇。从标准输入读取总人数。,用于模拟环形队列。
2025-02-07 23:16:33
215
原创 寒假集训课专题二
此次专题让我学会了二分法的基础运用,通过概念理解,二分模板,具体题目等板块加深了我对二分法的认识,受益匪浅。虽然两道hard题都没能做出来,但对于c++小白的我来说完成前4道题已经比较满足了,之后的学习中我也会紧跟进度,认真完成任务。
2025-01-26 15:48:38
260
原创 二分法——卡牌
这天,小明在整理他的卡牌。他一共有 n 种卡牌,第 i 种卡牌上印有正整数数 i(i∈[1,n]),且第 ii 种卡牌现有 ai 张。而如果有 n 张卡牌,其中每种卡牌各一张,那么这 n 张卡牌可以被称为一套牌。小明为了凑出尽可能多套牌,拿出了 m 张空白牌, 他可以在上面写上数 i,将其当做第 i 种牌来凑出套牌。然而小明觉得手写的牌不太美观,决定第 i 种牌最多手写 bi张。请问小明最多能凑出多少套牌?
2025-01-26 14:27:02
517
原创 二分法——分巧克力
儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N块巧克力,其中第 i 块是 Hi×Wi的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数。大小相同。例如一块 6×5的巧克力可以切出 6 块 2×2的巧克力或者 2 块 3×3 的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小 Hi 计算出最大的边长是多少么?
2025-01-26 01:02:55
739
原创 二分法——A-B数对
给出一串正整数数列以及一个正整数 C,要求计算出所有满足 A−B=C 的数对的个数(不同位置的数字一样的数对算不同的数对)。
2025-01-25 23:46:50
458
原创 二分法——二分查找
输入一个整数 n 和 n 个整数,保证这 n 个整数已经按照从小到大进行排序。然后输入一个整数 q ( q≤100000 )代表 q 次查询。接下来 q 行,每行含有一个整数 m ,代表一次查询。对于每次查询,使用二分查找判断 m 是否在之前输入的 n 个整数中出现过。如果出现,输出一行 "Yes" ,否则输出 "No"。
2025-01-25 14:42:58
221
原创 寒假集训课专题一
除此之外,我还初步了解到了c++中vector,string,sort等容器的基本用法,这些都与之前学的C语言有着很大的不同,意味着我将花费精力深入研究才能学好。该字符串的结构是固定的,以 L 开头,接着是 N 个 o,然后是 n,最后是 g,总长度为 N + 3。使用两次for循环嵌套得出day的值,最后判断其是否大于等于一半的天数,输出“YES”或“NO”。题目要求计算出需要额外想出的不同难度等级问题的最少数量,以满足比赛所需的各难度等级问题数量,即保证每一轮比赛各个难度的题目都至少有一道。
2025-01-23 17:44:41
689
原创 c++基础训练plus(二)
题目要求判断规则k是否正确。第一天、第二天分别有 1 个人遵守规则 1,都等于人数的一半,因此这两天小 A 的规则都符合民意,所以小 A 认为他的规则是正确的。从前有个荣光的王国,小 A 是其中的国王,他认为一个国家除了法律外还要有一些约定俗成的规则,所以今天他要赐以其规则。小 A 制定了一些规则,每条规则有一个代号,代号为不超过10的9次方的非负整数。可见,没有一天 11 号规则是符合需求的,所以小 A 认为他的规则是错误的。总共有 1 天符合民意,等于天数的一半,所以小 A 认为他的规则是正确的。
2025-01-22 18:36:44
655
原创 c++基础训练plus(一)
通过for循环遍历count中的元素(A到G总共7次),当count[i]<m时,则表示该等级的题目数量不够,x增加m-count[i]。接着创建一个动态数组count,用于储存不同难度等级的问题数量,并初始化为0。题目要求计算出需要额外想出的不同难度等级问题的最少数量,以满足比赛所需的各难度等级问题数量,即保证每一轮比赛各个难度的题目都至少有一道。首先读取一个整数t,表示测试用例的数量,接着通过while循环进行t次测试。每一次测试中读取已有题目数量n,比赛轮数m,表示已有题目难度等级的字符串a。
2025-01-22 17:17:14
277
原创 c++基础训练(三)
题目要求检验输入正整数的奇偶性。先从用户那里获取一个正整数n,表示测试用例的数量。接着使用for循环n次,判断每次输入数据的奇偶性(数据过大,因此考虑字符串,用size函数计算出字符串长度,直接判断最后一个数字的奇偶性。偶数输出“even”,奇数输出“odd”),每次输出后接上换行符。
2025-01-22 15:05:46
149
原创 c++基础训练(二)
题目要求检验输入的字符串是否合法。先从用户那里获取一个正整数t,表示测试用例的数量。接着使用for循环t次,判断每次输入的字符串是否合法(第一个字符为'y'或'Y'且第二个字符为'e'或'E'且第三个字符为's'或'S'则合法)每次输出后接上换行符。
2025-01-22 14:07:30
228
原创 c++基础训练(一)
生成一个特定的 “龙字符串”。该字符串的结构是固定的,以。首先创建一个初始字符串,以。从用户那里获取一个正整数。题目要求根据输入的正整数。字符添加到字符串中。字符添加到字符串末尾。
2025-01-21 23:46:46
201
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人