- 博客(47)
- 收藏
- 关注
原创 1-10 目录树
在ZIP归档文件中,保留着所有压缩文件和目录的相对路径和名称。当使用WinZIP等GUI软件打开ZIP归档文件时,可以从这些信息中重建目录的树状结构。请编写程序实现目录的树状结构的重建工作。
2025-05-16 22:57:24
552
原创 1-6 树的同构
判断二叉树同构的关键在于递归遍历所有可能的子树匹配情况,允许交换左右子树的结构。代码通过巧妙的递归设计和输入处理,确保了高效准确的判断。理解递归的终止条件和分支情况是掌握这一算法的核心。通过本题,可以加深对二叉树结构和递归算法的理解,为解决更复杂的树问题奠定基础。++i) {if (!return i;return -1;int n1, n2;cin >> n1;i < n1;if (l!
2025-05-15 11:29:27
566
原创 1-9 修理牧场
通过哈夫曼算法和最小堆的结合,我们能够高效地求解此类“合并最小代价”问题。该方法的时间复杂度为O(n log n),适用于大规模数据处理。类似的问题如文件压缩、任务调度等均可借鉴此思路。
2025-05-12 10:08:10
837
原创 1-8 病毒溯源
本解法通过逆向拓扑排序,在O(N)时间复杂度内高效解决了树形结构的最长路径问题。字典序优化策略与深度计算同步进行的设计思路,既保证了正确性,又实现了时间效率的最优化。该算法适用于需要处理树形结构且要求特定路径选择的场景,如基因演化分析、版本依赖解析等问题。int n;cin >> n;i < n;cin >> k;j < k;cin >> c;i < n;break;i < n;
2025-05-09 13:23:45
634
原创 1-5 彩虹瓶
该问题完美展现了栈结构后进先出的特性在实际场景中的应用。通过维护当前期望值和实时检查栈容量,可以高效判断装填顺序的可行性。算法的时间复杂度与数据规模成线性关系,能够高效处理大规模输入。理解这一解法对掌握栈的应用场景和算法设计思维具有重要意义。i < K;while (!current++;while (!current++;
2025-05-07 10:00:57
891
原创 1-4 出租
下面是新浪微博上曾经很火的一张图:一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2对应arr[2]=1index[1]=0对应arr[0]=8index[2]=3对应arr[3]=0,以此类推…… 很容易得到电话号码是。本题要求你编写一个程序,为任何一个电话号码生成这段代码 —— 事实上,只要生成最前面两行就可以了,后面内容是不变的。
2025-05-05 10:56:39
230
原创 1-7 红色警报
战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。
2025-05-02 09:42:02
704
原创 1-9 冰岛人
本题通过巧妙的数据建模(树形结构+哈希表)和层级遍历算法,高效解决了五代祖先判断问题。姓氏解析:准确提取父名和性别。遍历终止条件:优化五代判断逻辑。!!// 双方都超出5代之后,不需要继续寻找if (current1 == current2 && (generation1 < 5 || generation2 < 5)) // 五代内出现共同祖先return 0;return 1;
2025-04-30 23:23:11
957
原创 1-10 垃圾箱分布
大家倒垃圾的时候,都希望垃圾箱距离自己比较近,但是谁都不愿意守着垃圾箱住。所以垃圾箱的位置必须选在到所有居民点的最短距离最长的地方,同时还要保证每个居民点都在距离它一个不太远的范围内。现给定一个居民区的地图,以及若干垃圾箱的候选地点,请你推荐最合适的地点。如果解不唯一,则输出到所有居民点的平均距离最短的那个解。如果这样的解还是不唯一,则输出编号最小的地点。
2025-04-28 15:05:59
695
原创 1-9 功夫传人
一门武功能否传承久远并被发扬光大,是要看缘分的。一般来说,师傅传授给徒弟的武功总要打个折扣,于是越往后传,弟子们的功夫就越弱…… 直到某一支的某一代突然出现一个天分特别高的弟子(或者是吃到了灵丹、挖到了特别的秘笈),会将功夫的威力一下子放大N倍 —— 我们称这种弟子为“得道者”。这里我们来考察某一位祖师爷门下的徒子徒孙家谱:假设家谱中的每个人只有1位师傅(除了祖师爷没有师傅);每位师傅可以带很多徒弟;并且假设辈分严格有序,即祖师爷这门武功的每个第i代传人只能在第i-1代传人中拜1个师傅。
2025-04-25 11:14:30
725
原创 1-10 千手观音
人类喜欢用 10 进制,大概是因为人类有一双手 10 根手指用于计数。于是在千手观音的世界里,数字都是 10 000 进制的,因为每位观音有 1 000 双手 ……千手观音们的每一根手指都对应一个符号(但是观音世界里的符号太难画了,我们暂且用小写英文字母串来代表),就好像人类用自己的 10 根手指对应 0 到 9 这 10 个数字。同样的,就像人类把这 10 个数字排列起来表示更大的数字一样,ta们也把这些名字排列起来表示更大的数字,并且也遵循左边高位右边低位的规则,相邻名字间用一个点分隔,例如。
2025-04-21 11:31:42
717
原创 1-7 网红点打卡攻略
一个旅游景点,如果被带火了的话,就被称为“网红点”。大家来网红点游玩,俗称“打卡”。在各个网红点打卡的快(省)乐(钱)方法称为“攻略”。你的任务就是从一大堆攻略中,找出那个能在每个网红点打卡仅一次、并且路上花费最少的攻略。
2025-04-18 17:58:00
874
原创 1-9 堆宝塔
堆宝塔游戏是让小朋友根据抓到的彩虹圈的直径大小,按照从大到小的顺序堆起宝塔。但彩虹圈不一定是按照直径的大小顺序抓到的。重复此步骤,直到所有的彩虹圈都被抓完。最后 A 柱上剩下的宝塔作为一件成品,B 柱上剩下的彩虹圈被逐一取下,堆成另一座宝塔。问:宝宝一共堆出了几个宝塔?最高的宝塔有多少层?
2025-04-17 20:02:39
865
原创 1-6 排座位
布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。
2025-04-12 20:34:28
831
原创 1-5 抢红包
结构体初始化:确保每个结构体的成员变量正确初始化,尤其是ID的赋值和cntmoney的初始值为0。红包处理逻辑:注意处理每个红包时,发出者的净收入减少,接收者的净收入增加,并更新红包计数。排序规则实现:正确实现多级排序规则,确保比较函数(cmp)的逻辑正确。单位转换:输入的金额单位为分,输出时需要转换为元并保留两位小数。int id;int cnt;}p[10000];cin>>n;i<=n;i<=n;
2025-04-10 11:01:18
255
原创 约瑟夫问题
n 个人围成一圈,从第一个人开始报数,数到 m 的人出列,再由下一个人重新从 1 开始报数,数到 m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。
2025-04-08 14:16:30
259
原创 7-6 查询首都或国名
编写程序实现:首先从键盘输入若干个国名与首都的偶对,以空行作结束标记。然后输入一个国名或首都,输出对应的首都或国名;若不存在该国名或首都,则输出“查无此名”。提示:可以同时创建两个字典。
2025-04-04 16:09:09
191
原创 7-6 清点代码库
上图转自新浪微博:“阿里代码库有几亿行代码,但其中有很多功能重复的代码,比如单单快排就被重写了几百遍。请设计一个程序,能够将代码库中所有功能重复的代码找出。各位大佬有啥想法,我当时就懵了,然后就挂了。。。这里我们把问题简化一下:首先假设两个功能模块如果接受同样的输入,总是给出同样的输出,则它们就是功能重复的;其次我们把每个模块的输出都简化为一个整数(在范围内)。于是我们可以设计一系列输入,检查所有功能模块的对应输出,从而查出功能重复的代码。你的任务就是设计并实现这个简化问题的解决方案。
2023-12-21 13:55:36
158
原创 7-3 币值转换
输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。
2023-12-19 18:23:57
218
原创 7-5 乘法口诀数列
本题要求你从任意给定的两个 1 位数字 a1 和 a2 开始,用乘法口诀生成一个数列 {an},规则为从 a1 开始顺次进行,每次将当前数字与后面一个数字相乘,将结果贴在数列末尾。如果结果不是 1 位数,则其每一位都应成为数列的一项。
2023-12-16 20:52:46
229
原创 装箱问题
假设有N项物品,大小分别为s1、s2、…、si、…、sN,其中si为满足1≤si≤100的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。
2023-12-14 16:34:30
109
原创 二维数组 螺旋方阵
所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。
2023-12-12 18:52:22
474
1
原创 7-6 赛博黑客
在循环中,因为temp不是稳定的,可以先定义一个p,使用编写的isstable()函数返回需要相等的位置,这里需要进行一个判断:如果插入的魔偶t的第一个字符等于temp中相等元素位置的前一个元素时,如 temp=10011 t=10,这样插入后仍是11中间后,整个temp还是不稳定的,无论插入多少次都是不稳定的。若s不是稳定的,则判断t是否是稳定的,若t不是稳定的,则插入s后整个s也还是不稳定的,如s=1011 t=00,t无论如何插入都无法使s稳定,所以返回0。已经是稳定的魔偶,可以无需进行操作。
2023-12-09 16:06:07
200
原创 7-3 整除光棍
这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s。
2023-12-07 14:27:50
101
原创 7-2 点赞
微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。输入在第一行给出一个正整数N(≤1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F1⋯FK”,其中1≤K≤10,Fi(i=1,⋯,K)是特性标签的编号,我们将所有特性标签从1到1000编号。数字间以空格分隔。统计所有被点赞的博文中最常出现的那个特性标签,
2023-12-05 18:58:03
110
1
原创 7-1 感染人数
设某住宿区域是一个n×n的方阵,方阵中的每个小方格为一个房间,房间里可能住一个人,也可能空着。第一天,某些房间中住着的人得了一种高传染性的流感,以后每一天,得流感的人会使其邻居(住在其上、下、左、右方向存在的房间里面的人)传染上流感,请问:第m天总共有多少人得流感?
2023-12-02 16:02:45
112
1
原创 7-7 约瑟夫环
有N个人围成一圈(编号为1~N),从第1号开始进行1、2、3报数,凡报3者就退出,下一个人又从1开始报数……直到最后只剩下一个人时为止。请问此人原来的编号是多少?
2023-11-28 22:05:36
425
原创 7-7 输出鞍点的行列下标
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的n阶方阵的鞍点的行列值。
2023-11-21 00:45:36
1647
1
原创 试试手气问题
我们知道一个骰子有 6 个面,分别刻了 1 到 6 个点。下面给你 6 个骰子的初始状态,即它们朝上一面的点数,让你一把抓起摇出另一套结果。那么你应该可以预知自己第 n 次(1≤n≤5)摇出的结果。
2023-11-09 15:45:54
137
1
原创 吃火锅问题
以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用。但是如果你说“吃火锅”,那就厉害了,我们的故事就开始了。本题要求你实现一个程序,自动检查你朋友给你发来的信息里有没有。
2023-11-07 22:56:54
273
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人