- 博客(17)
- 收藏
- 关注
原创 CCF刷题——BFS一篇速通(以机器人复健指南为例)
该代码使用BFS算法解决机器人跳跃问题。在n×n方格中,机器人从起点(x,y)出发,每次可向8个方向跳跃,计算不超过k步能到达的方格总数。通过定义方向偏移量、初始化访问数组和队列,从起点开始分层遍历:每次取出当前位置和剩余步数,若还有步数就继续向8个方向探索合法且未访问的位置并标记入队。最终输出可达位置总数。算法复杂度为O(n²),确保所有不超k步的可达位置都被统计。
2025-09-11 10:33:37
1039
1
原创 CCF刷题——动态规划一篇速通(以真题机器人饲养指南为例)
本文解析了如何用动态规划解决"投喂苹果求最大快乐值"问题。通过定义dp[i]表示投喂i个苹果的最大快乐值,建立状态转移方程dp[i]=max(dp[i],dp[i-j]+A[j]),其中j为最后一次投喂的苹果数。算法从dp[0]=0开始,逐步计算到dp[n],最终输出最大快乐值。该解法体现了动态规划"记忆化"和"最优子结构"的核心思想,通过存储子问题解避免了重复计算,展示了动态规划解决最优化问题的结构化思路。
2025-09-08 10:34:43
843
原创 数据结构期末复习,看完这一篇就够了(上)
喜欢的话可以点点关注支持哟针对24届开始使用的数据结构与算法新教材——101计划核心教材写的一个汇总复习,有不足之处欢迎各位批评指正。(1:1对照课本伪代码)
2025-06-13 23:22:36
896
原创 Hun实验五 图:良心树
接下来的 n 行描述了整颗树:第 i 行包含两个整数 pi 和 ci (1≤ pi ≤ n, 0≤ ci ≤1),这里 pi 是顶点i 的父母,若ci=0,表示顶点 i 尊重它的父母,ci=1,表示顶点 i 不尊重它的父母,pi=-1时,表示顶点 i 是树的根,同时 ci=0。顶点 i 的祖先是从根到顶点 i 的路径上除顶点 i 以外的所有顶点,顶点 i 的父母是 i 的祖先中最接近 i 的顶点,每个顶点都是它父母的孩子。在给定的树中,顶点 i 的父母是顶点pi,对于根,pi为-1。
2025-05-16 23:41:51
261
原创 Hun实验6——多路径
接下来的 m 行包括了对边的描述,每行两个整数 ai、bi (1≤ ai、bi ≤ n),表示第 i 边的开始点和结束点,图的顶点编号从1至 n ,给定的图中可以包含环(可能有ai =bi), 但不可以包含多边(即对于 i ≠ j,不可能有 ai = aj 以及 bi = bj)。顶点4的结果为2:从1到4有超过一条路径,但路径数量是有限的(两条路径:【(1,3),(3,4)】和【(1,4)】)顶点3的结果为1:从1到3仅有一条路径(为边(1,3))顶点1的结果为1:从1到1只有一条路径(路径长度为0)
2025-05-15 20:03:55
509
原创 Hun实验五猫与餐厅的故事
他住在一个非常神奇的公园里,这个公园是一个根在顶点1,且由 n 个顶点组成的有根树,顶点1也就是他的住所。公园的叶子顶点都有餐厅,阿迪想选择一家他可以去的餐厅,但很不幸,他非常害怕猫,因而如果从餐厅去往他家的路径上有连续包含猫的数量超过 m 时,他将不能去往这家餐厅。输入的第一行包含两个整数 n 和 m (2≤ n ≤ 105, 1≤ m ≤ n),分别表示树的顶点数以及对于阿迪来说可以忍受的最大的包含猫的连续顶点数。包含猫的顶点变为红色,餐厅在顶点2、3、4,阿迪不能去到在顶点2的餐厅。
2025-05-11 10:27:07
479
原创 Hun实验五有效的BFS
在图的BFS(广度优先搜索)中,通常采用队列来保存当前顶点的邻接点,但对对应邻接点的存入顺序没有要求,因此对于一个图的BFS结果可以有多个,在本问题中,从顶点1开始,请验证一个给定的顶点序列是否为一个有效的BFS序列?接下来 n-1 行描述了树的边,每行包含两个整数 x 和 y (1 ≤ x , y ≤ n),表示对应边的两个端点,输入保证给定的图构成一颗树。如果待检验的序列是一个正确的BFS序列,输出"Yes",否则输出"No"。
2025-05-11 09:38:17
180
原创 Hun实验五踩点上课
输入的第一行包含三个整数 n、m 和 w (2 ≤ n、m ≤ 2×103,1≤ w ≤109),此处 n 和 m 是城市的大小,w 是在未被占用的单元之间移动所需要的时间。从任何包含时空通道的单元出发,阿迪可以去往任何包含时空通道的其他单元,从时空通道( i, j )到时空通道( x, y ) 的时间成本总和为 aij + axy。数字为 x (1≤x ≤109) 时表示该单元包含时空通道,需要耗费的时间成本为 x,包含时空通道的单元也是空闲的,可以自由通行。数字为 -1 时表示该单元被占用,禁止通行。
2025-05-11 08:54:48
334
原创 字典树应用之词频统计
注:在此单词为仅由字母组成的字符序列。包含大写字母的单词应将大写字母转换为小写字母后统计。此外,由于输入文件是英文小说,因此不会出现无意义的单词。按单词出现次数由高至低输出前100个(不足100个按实际个数输出),每行输出一个单词及其出现次数,单词和其出现次数间由一个空格分隔。编写程序统计一个英文文本文件中每个单词的出现次数(词频统计),并将统计结果按单词出现频率由高至低输出。本题采用的数据结构为trie树,也称为字典树,具体请参考相关资料。然后对应的文件是要放在你保存这个源码的同级目录下,例如。
2025-04-25 20:53:25
370
原创 根据字符出现频率排序
给定一个字符串 s ,根据字符出现的 频率 对其进行降序排序。一个字符出现的频率是它出现在字符串中的次数。// 根据频率降序排序。// 创建一个足够大的vector来存储字符频率(处理ASCII字符)题目保证不存在相同频率的字符,同时不包含空格、制表符、换行符等特殊字符。// 创建一个vector来存储字符和对应的频率,用于排序。因此'e'必须出现在't'之前。// 统计每个字符的频率。// 构建排序后的字符串。e'出现两次,'t'出现一次。
2025-01-11 21:49:14
277
原创 找不重复字符的最大子串
输入只包含一行,一个字符串,不包含空格或制表符,长度至少为1,最大长度不超过1000。// 存储字符是否出现过。给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。// 一旦出现重复,跳出内层循环。最长无重复子串是“defk”,因此输出结果为其长度,即4。输出只有一个正整数:即不含重复字符的最长子串的长度。
2025-01-11 16:23:37
326
原创 Hnu-体能测试
【问题描述】小张老师负责信息学院m(0<m<=100)个学生的k(1<k<=10)项体能测试,体能测试顺序按照编号来,学生测试完一项就在小张老师这里登记一次,现在小张老师手上有n(n<=m*k)个数据,需要根据学生登记的情况,判定出哪些学生还缺体能项目测试,缺的项目是哪一项,然后提醒这些学生尽快完成体能测试。总共6个学生,2个项目根据输入进来的9个数据发现,2,3,5,6号同学都已经完成了2项体能测试,1号同学缺第2项,4号同学缺1,2两项。输出多行,每行输出还缺体能测试项目的学生的编号和缺的项目编号。
2025-01-09 11:48:54
403
原创 同构字符串(vector数组实现)
注:如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。2.查看过的记录一下,遇到相同的对比记录之前查看的上下字符是否一致(这样可以排除一对多或者多对一的问题)如果是同构的,输出true,否则,输出false。字符串s中的'e'映射成'a','g'映射成'd',可以转化成字符串t。// 检查后续相同字符的映射是否正确。// 将 s 和 t 中的字符存储到相应向量中。字符串s中的'o'映射成'a'和'r',不符合条件。
2025-01-09 11:47:55
486
原创 (递归实现)过河卒
同时在棋盘上的任一点有一个对方的马(图中的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点(中国象棋规定马走“日”字)。例如图中 C 点上的马可以控制 9 个点(图中的P1,P2 …棋盘用坐标表示,A 点(0,0)、B 点(n,m)(n,m 为不超过 20 的整数,并由键盘输入),同样马的位置坐标是需要给出的(约定: C不等于A,同时C不等于B)。输入一行4个整数,分别表示B点的坐标(n,m)以及对方马的坐标(X,Y)// 递归计算从上方和左方到达当前位置的路径数,并返回它们的和。
2025-01-07 17:48:35
625
原创 Hnu——松雅旅馆的自动门
例如,如果 d=3,有4人在4个不同时刻t1=4、t2=7、t3=9 和 t4=13 来到门前,门将会打开3次,即在时刻4、9和13打开,在时刻7和12关闭。已知有 n 个员工将在 a、2*a、3*a、...、n*a( a 是一个正整数)时刻进入,同时在 t1、t2、...、tm 时刻有 m 个客人进入。第一行4个正整数 n、m、a、d,分别表示员工数、客人数、第一个雇员进入的时刻、门打开后到关闭的时间长度。当门是关闭的时候,1或多个人来到门前,门将马上自动打开,所有人都能马上入内;
2025-01-06 23:27:44
332
原创 侠士决斗C++
特别地,如果决斗发生在2名同为1级的 StrongMaster之间,其中一名StrongMaster会进化成为2级StrongMaster, 另一名 StrongMaster会被淘汰出桃花岛。进而这2名StrongMaster之间产生1次决斗,产生1名1级StrongMaster和1名3级StrongMaster。根据能量的强弱,桃花岛上一共有k种能量等级的StrongMaster: 1级StrongMaster, 2级StrongMaster, ..., k级StrongMaster。
2025-01-05 12:37:47
457
原创 HUNcg作业——阿迪看医生
这几天同学们总是对阿迪议论纷纷,这使得他很烦恼,似乎产生了一些抑郁,头也有点痛,打不起精神,他只好去看医生。然而,他只有去看过 n 个医生之后才能确诊病情,每个医生都需要上一个医生的诊断结果,因此他必须按顺序去预约每个医生,也就是说,他必须先去看医生1,然后再去看医生2,然后是医生3,等等。从今天开始,每个医生都有一个固定的出诊安排表,医生 i 在第 si 天看病人,然后在之后的每个第 di 天看诊。因此,阿迪可以在第2天去看第1位医生,然后在第3天去看第2位医生,第4天看第3位医生。
2024-12-26 17:39:34
387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅