- 博客(77)
- 收藏
- 关注
原创 递归与分治法解决集合的划分
函数jihe(int n, int m)计算的是将n个元素的集合划分为m个非空子集的数量。斯特林数S(n, m)表示将n个不同的物品划分为m个非空的、不可区分的集合的方式数。主函数读取输入n,然后计算从i=1到i=n的所有S(n, i)的和,即贝尔数B(n) = Σ S(n, i) for i from 1 to n。给定正整数n,计算出n个元素的集合{1,2,…文件的第1行是元素个数n。递归式:F(n, m)=m*F(n-1, m)+F(n-1, m-1)当n=m或m=1时,F(n, m)=1。
2025-04-02 20:07:45
504
原创 递归分治法格雷码
如果 n > 1,调用 grayCode(n - 1, a / 2, ans) 递归地生成 n-1 位的格雷码,计算出前半部分的格雷码。通过递归调用生成较小规模的子问题(即 n-1 位的格雷码),这是分治法中的“递归分解问题”部分。:递归返回后,利用已经生成的 n-1 位的格雷码来构建 n 位的格雷码。具体来说,前半部分的格雷码保持不变,后半部分的格雷码是前半部分格雷码的逆序,并在最高位设置 1。:当 n = 1 时,直接生成格雷码 [0] 和 [1]。:通过合并子问题的解,得到原问题的解。
2025-03-19 21:37:01
191
原创 在wsl2中安装ubuntu
Linux 是操作系统内核,Ubuntu 是基于Linux的发行版。虚拟机 是运行操作系统的虚拟环境,可以在物理机上运行多个操作系统,包括Linux和Ubuntu。以管理员身份打开 PowerShell。(win+R,输入powershell,shift+ctrl+enter进入)运行以下命令启用 WSL:(下好后会连带ubuntu也下载了)(记得开加速器 )如果已经安装了 WSL,可以跳过此步骤。重启电脑。安装完成后,可以通过启动 Ubuntu。(在安装过程中,系统已经提示你创建了默认用户(如。
2025-03-11 15:28:02
828
原创 寻找右区间
对于区间 [1,4] 和 [3,4] ,没有满足条件的“右侧”区间。对于 [2,3] ,区间 [3,4] 有最小的“右”起点。对于 [2,3] ,区间[3,4]具有最小的“右”起点;对于 [1,2] ,区间[2,3]具有最小的“右”起点。对于 [3,4] ,没有满足条件的“右侧”区间。集合中只有一个区间,所以输出-1。
2025-02-23 16:28:28
309
原创 git bash在github的库中上传或更新本地文件
在 GitHub 上创建一个新仓库。在本地初始化 Git 仓库并添加远程仓库。使用git add和git commit来添加并提交文件。使用git push将文件上传到 GitHub。当你在本地文件夹做出变更时,它不会自动影响远程 GitHub 仓库。你需要手动将这些变更同步到 GitHub 上。本地变更后使用git add添加变更到暂存区。使用git commit提交变更到本地仓库。使用git push将变更推送到 GitHub 仓库。远程仓库有变更时使用git pull。
2025-02-13 17:17:23
1093
原创 git bash删除库中的分支与文件
或(如果分支没有合并)完成这些步骤后,main以外的分支将在 GitHub 和本地仓库中被删除。二、这样,你就能够删除库中的文件并同步到远程仓库。
2025-02-13 16:43:47
881
原创 高效排序算法
设计并实现一个高效的算法,该算法需要对包含n个记录的序列进行整理。每个记录包含一个实数值的关键字。该算法的主要任务是确保序列中所有关键字为负值的记录排列在关键字为非负值的记录之前。在整理过程中,你需要尽量减少记录间的交换操作次数,以提高算法的效率。
2024-12-20 14:53:19
108
原创 航班管理系统
2.删除航班:根据航班号删除航班信息3.修改航班信息:根据航班号修改航班的起飞时间、到达时间或其他信息。1.添加航班:输入航班号、出发地、目的地、起飞时间、到达时间、座位总数和票价。5.预订座位:为乘客预订座位,记录乘客信息和座位号。6.退订座位:根据乘客信息或座位号取消座位预订。4.查询航班:根据航班号查询航班的详细信息。
2024-12-20 14:50:35
279
原创 学生信息管理系统
设计一个学生信息管理系统,学生信息包括:学号,姓名,专业,住址,电话。试编写满足以下要求的程序,并调试通过。要求:系统能够增加、删除、修改学生的信息记录,且能够根据学号查找该学生的住址,电话。
2024-12-20 14:50:17
2911
4
原创 学生成绩统计系统
程序中使用 scanf 函数读取学生姓名和成绩时,scanf("%s %d", students[i].name, &students[i].score) 假设输入的姓名不含空格。如果学生的姓名中包含空格,则需要修改输入处理方式(例如使用 fgets 来读取包含空格的姓名)。在打印名次时,要正确处理成绩相同的情况,确保相同成绩的学生获得相同的名次。确保临时数组的大小与待排序数组的大小相同,以避免复制数据时越界。按分数高低次序,打印出每个学生的名次,分数相同的为同一名次;按名次输出每个学生的姓名与分数。
2024-12-08 21:43:51
341
原创 几种排序方法
因此应该在用户选择退出时统一释放内存。堆排序:通过堆这种数据结构进行排序,时间复杂度为 O(n log n),堆排序是一个选择排序,不稳定,但适用于需要优先队列的场景。避免每次释放内存:free(array)应当只在退出程序时进行,而不是在每次选择排序后释放,因为内存在后续排序中会继续使用。内存释放:使用 malloc 或 calloc 动态分配内存后,使用 free(array) 来释放内存,避免内存泄漏。退出选项:增加了一个 "退出" 选项(选项 4),如果用户选择了退出,程序会释放内存并结束。
2024-12-08 21:42:09
392
原创 查询电话号码
如果希望在哈希表已满时做出合适的处理,可以在 while 循环中增加一个检查是否已经尝试了哈希表的所有槽位。检查探测次数:在每次进入 while 循环时,我们都检查当前的 probeCount 是否达到了哈希表的大小 NUM。探测回到原始位置:如果在探测过程中,我们回到了原始的哈希槽位置 (index == originalIndex),这意味着我们已经遍历了所有的槽位,也应该终止插入操作。:虽然没有明确要求,但在实际项目中,需要对用户输入做进一步的检查,例如字符串长度检查。人数不能少于10人。
2024-11-28 11:49:21
360
原创 顺序、折半查找
在处理数组时,很容易混淆索引和长度。例如,在遍历数组时,应该使用小于数组长度的索引(i < list->num),而不是小于等于(i <= list->num),因为数组的索引是从0开始的。用户输入的选择部分,scanf 读取字符时需要注意空格和换行符的影响。此外,scanf 读取字符时应该使用 %c 格式说明符,并且在读取字符前需要消耗掉前一个输入的换行符。最好采用在一个循环中多次进行查找操作,直到用户选择退出。注意这里的空格,用于消耗前一个输入的换行符。无效的输入,请输入 T 或 F。
2024-11-28 11:47:38
268
原创 校园导航系统
destination 是 2,不是起点 0,所以递归调用 printPath(p, 0, p[2], G, info),即 printPath(p, 0, 1, G, info)。destination 是 1,不是起点 0,所以递归调用 printPath(p, 0, p[1], G, info),即 printPath(p, 0, 0, G, info)。但这样的话,每一个用到p和d数组的函数都应该重新分配空间,在编写程序的效率上采取前一种方法比较好,即在主函数声明int d[6], p[6]。
2024-11-14 21:54:42
446
原创 哈夫曼码编、译码器
int fprintf(FILE *stream, const char *format, ...) 和 int fscanf(FILE *stream, const char *format, ...): 格式化输入和输出。在此过程中,需要正确地累积编码值,并记录每个字符的编码长度。利用已建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),对文件的正文进行编码,然后将结果存入文件CodeFile中。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入在文件TextFile中。
2024-11-14 21:47:14
937
原创 15-15查找热点数据问题(难)
给你一个整数数组 nums 和一个整数 k,请你返回其中出现频率前 k 高的元素。你所设计算法的时间复杂度必须优于 O(n log n),其中 n 是数组大小。
2024-10-29 15:37:51
273
原创 15-14理想火车站定位(中)
小F是A市的市长,正在计划在A市新建一个火车站以方便市民的日常出行。市区内的街道布局十分规整,形成网格状。个可能的火车站建设点。为了使得市民到火车站的总旅行时间最短,小F希望选出一个最优位置作为火车站的地址。请你帮助小F计算出哪一个位置最适合建设新火车站。如果有多个火车站最优,那么选择第一次出现的那个。在初步考察后,市政府列出了。
2024-10-29 15:36:29
287
原创 15-13贪心猫的鱼干大分配(中)
在猫星球上,小R负责给一行排队的猫分发鱼干。每只猫有一个等级,等级越高的猫应该得到更多的鱼干。小R想知道,为了公平地满足所有猫的等级差异,他至少需要准备多少斤鱼干。
2024-10-29 15:34:59
271
原创 15-12小U的防御挑战(中)
小U最近沉迷于一款冒险游戏,在闯关过程中,他通过击败小兵获得了防御宝石,每个防御宝石的价值为 aiai。经过一番激战,小U终于遇到了关底的boss,这个boss拥有攻击宝石,每颗攻击宝石的价值为 bibi。小U想知道他手中的防御宝石是否能够抵抗住boss的攻击。小U的防御成功条件是:所有防御宝石的乘积 ∏i=1nai∏i=1nai 可以被所有攻击宝石的乘积 ∏i=1mbi∏i=1mbi 整除。你能帮小U判断他是否能够抵抗住boss的攻击吗?
2024-10-29 15:33:39
198
原创 15-11阿D的最佳飞行路线探索(中)
小C和他的领导小F计划一次飞行,但由于严格的航空管制,他们的飞机仅能按特定的路线飞行:飞机只能飞往当前机场的相邻机场或相同航空公司管理的机场。为了减少起飞次数,小C需要制定最优的飞行路线。
2024-10-29 15:32:01
272
原创 建立二叉树并交换左右子树
比如输入:A B # D # # C # #,说明:A为根节点,B为左子节点,#表示空节点。最后可以直接按回车。如果只需消耗一个换行符,使用 getchar() 就足够了,但如果有其他多余字符,考虑使用 while (getchar()!缓冲区问题: 在使用 scanf 读取字符时,可能会因为前面输入的换行符导致程序不读取新的输入。或者,在读取每个节点后,直接在scanf语句后面使用 getchar()来消耗掉换行符。如果后续有更多输入,确保在每次读取前都使用 getchar(),以处理潜在的换行符。
2024-10-29 15:27:18
222
原创 visual studio使用注意
有时还会记录下发现的问题和解决方案,以便未来参考。调试可以通过多种方式进行,包括使用调试工具(如 IDE 自带的调试器)来逐步执行代码、设置断点、查看变量值等。
2024-10-28 19:12:59
1052
3
原创 15-10充电总时间计算
现在,所有电脑的电量都为零。小R希望使用闪充给所有电脑充满电,计算她需要的总充电时间。请保留结果的小数点后两位。小R有nn部电脑,每部电脑的电池容量分别为aiai。
2024-10-27 21:39:42
224
原创 15-9小C点菜问题
已知该餐馆有 nn 道菜,第 ii 道菜的售价为 wiwi。小C准备点一些价格相同的菜,但小C不会点单价超过 mm 的菜。小C想知道,自己最多可以点多少道菜?
2024-10-27 21:37:31
359
原创 15-8统计班级中的说谎者
小C发现了一件有趣的事:当且仅当某个学生的成绩小于或等于自己的有更多人时,这个学生会说谎。换句话说,如果分数小于等于他的学生数量大于比他分数高的学生数量,则他会说谎。现在,小C想知道班里有多少个学生会说谎。个学生,每个学生的成绩是。
2024-10-27 21:36:30
342
原创 15-7数字字符串格式化
小M在工作时遇到了一个问题,他需要将用户输入的不带千分位逗号的数字字符串转换为带千分位逗号的格式,并且保留小数部分。小M还发现,有时候输入的数字字符串前面会有无用的。,这些也需要精简掉。请你帮助小M编写程序,完成这个任务。
2024-10-27 21:34:49
515
原创 15-6判断回旋镖的存在
回旋镖的定义是三点不在一条直线上,并且这三个点互不相同。小M正在玩一个几何游戏,给定一个二维平面上的三个点。请你帮助小M判断这些点是否构成一个回旋镖。如果三点构成一个回旋镖,则返回。
2024-10-27 21:33:42
199
原创 15-4连续子串和的整除问题
小M是一个五年级的小学生,今天他学习了整除的知识,想通过一些练习来巩固自己的理解。,然后想知道有多少个连续子序列的和能够被一个给定的正整数。你能帮小M解决这个问题吗?
2024-10-27 21:30:28
360
原创 15-3分组飞行棋棋子
组,每组恰好5个,并且组内棋子的序号相同。小M希望知道是否可以按照这种方式对棋子进行分组。小M和小F在玩飞行棋。游戏结束后,他们需要将桌上的飞行棋棋子分组整理好。,虽然只有5个棋子,但由于序号不同,因此不能形成有效的分组。个棋子,每个棋子上有一个数字序号。小M的目标是将这些棋子分成。,则可以形成两个有效分组,因此输出为。例如,假设棋子序号为。
2024-10-25 22:29:52
296
原创 15-2小E的射击训练
每个环对应不同的得分,靶心内(半径为1)得10分,依次向外的每个环分数减少1分。若射击点在某个半径为。小E正在训练场进行射击练习,靶有10个环,靶心位于坐标。如果射击点超出所有的环,则得0分。,请计算小E的射击得分。
2024-10-25 22:27:13
347
原创 15-1寻找独特数字卡片
在一个班级中,每位同学都拿到了一张卡片,上面有一个整数。有趣的是,除了一个数字之外,所有的数字都恰好出现了两次。现在需要你帮助班长小C快速找到那个拿了独特数字卡片的同学手上的数字是什么。解释:拿到数字 4 的同学是唯一一个没有配对的。解释:10 是班级中唯一一个不重复的数字卡片。解释:数字 2 只出现一次,是独特的卡片。
2024-10-25 22:24:46
421
原创 停车场问题
两种情况:(1)车辆在栈顶时,此时直接出栈而用不到辅助栈(2)车辆不在车顶时排在前面的车辆必须让位,此时它才能出栈,算法思想是首先根据输入的车牌号进行在栈中搜索,返还一个角标,根据角标来,找到出栈的车辆,这时前面的车辆入辅助栈,当循环的目标车辆时,这时不需要入辅助栈,直接出栈即可.设n=2,输入数据为(“A”,1,5),(“A”,2,10),(“D”,1,15),(“A” ,3,20),(“D”,2,35),("E”,0,0),(“A”,1,5),其中 :“A”表示达到(Arrival);
2024-10-19 14:32:56
481
原创 数字字母问号排序
给定一个字符串,其中仅包含,大小写字母,数字和问号。2. 数字占用的位置不变,数字之间由大到小排序。3. 字母占用的位置不变,字母之间按字典序排序。1. 问号的占用的位置不变。
2024-10-16 10:09:33
271
原创 利用TDM在vscode中运行c语言
可以设置一个任务,以便于使用 TDM-GCC 编译和运行你的代码。在 VSCode 的下方输出窗口中,你将看到程序的输出结果,例如。确保在 VSCode 中你的调试配置是正确的。你需要安装一个 C 语言编译器。如果你还没有安装 VSCode,可以从。,点击左侧的调试图标(或使用快捷键。点击齿轮图标(配置按钮),选择。
2024-10-15 01:08:11
1009
原创 顺序栈与链队列
为了实现结束顺序栈或链队列的基本操作后能返回主菜单的功能,需要在相应的子菜单操作循环中增加对返回上一级(即主菜单)的处理。建立链队列,并将元素(4,5,7,6,8)入队,实现链队列的建立和入队的基本操作;建立顺序栈,并将元素(8,9,5,4)入栈,实现顺序栈的建立及入栈的基本操作;,从而跳出子菜单的循环并返回到主菜单。如果用户选择退出程序(即主菜单中的。实现元素(8,9)的出栈,实现顺序栈的出栈操作;的变量来跟踪当前是否处于子菜单中。)时跳出当前子菜单的循环来实现。),则程序将销毁栈和队列并退出。
2024-10-12 21:11:58
169
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人