- 博客(27)
- 收藏
- 关注
原创 好数(蓝桥杯2024省赛B组)
一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位……)上的数字是奇数,偶数位(十位、千位、十万位。)上的数字是偶数,我们就称之为“好数”。24 以内的好数有 1,3,5,7,9,21,23,一共 7 个。给定一个正整数 N,请计算从 1 到 N 一共有多少个好数。个位为0,十位为1,逐渐增加,这样数位%2为0,就是奇数位。
2025-04-08 09:04:07
91
原创 数组基本操作(C++)
动态数组 数据结构第2篇文章先把数组分为静态数组和动态数静态数组是一块连续的内存空间,可以通过索引来访问这个数组中的元素;而动态数组其实是为了方便,添加了一些函数(如remove、push),不用自己去完成这些复杂操作,除此之外,栈、队列、哈希都依赖动态数组。一、静态数组这里解释一下arr[10] :在内存中开辟了一段连续的内存空间,大小是40(因为int是占4字节)
2025-03-31 09:51:44
646
原创 旋转矩阵的讨论(基于洛谷P4924,魔法少女小Scarlet)
接下来 m 行,每行 4 个整数 x,y,r,z,表示在这次魔法中,Scarlet 会把以第 x 行第 y 列为中心的 2r+1 阶矩阵按照某种时针方向旋转,其中 z=0 表示顺时针,z=1 表示逆时针。首先,Scarlet 会把 1 到 n2 的正整数按照从左往右,从上至下的顺序填入初始的二维数组中,然后她会施放一些简易的魔法。对于100%的数据 1≤n,m≤500,满足 1≤x−r≤x+r≤n,1≤y−r≤y+r≤n。输出 n 行,每行 n 个用空格隔开的数,表示最终所得的矩阵。
2025-03-29 21:44:11
222
原创 链表(C++)
这是本人第二次学习链表,第一次学习链表是在大一上的C语言课上,首次接触,感到有些难;第二次是在大一下学习数据结构时(就是这次),使用C++再次理解链表。同时,这也是开启数据结构学习写的第一篇文章,但愿以后有时间一直写下去。当然,学习数据结构还是保持着学习计算机的基本素养——增、删、查、改。
2025-03-29 19:07:30
1324
原创 合并果子 (贪心、堆、优先队列) 洛谷P1090
接着,将新堆与原先的第三堆合并,又得到新的堆,数目为 1212 ,耗费体力为 1212。假定每个果子重量都为 11 ,并且已知果子的种类 数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。第二次比较a1[1]和a2[0],此时w=5+10;由于a1[0]小,所以w=a1[0]=5。
2025-01-27 10:33:51
377
原创 C语言:指针
指针是C语言中一个强大且重要的概念,它允许你直接访问内存,并且支持动态内存分配和高效的数据操作。正确使用指针可以显著提高代码的性能和灵活性,但需要小心管理,以避免内存泄漏和段错误等问题。如果你对某个特定的指针主题有问题,或者需要进一步的澄清,请随时提问!
2025-01-02 21:30:33
763
原创 结构体(C语言)
结构体的定义使用struct// ... 更多成员// 定义结构体// 学生姓名int age;// 学生年龄// 学生成绩// 创建结构体变量// 给结构体成员赋值// 输出结构体成员return 0;
2025-01-01 18:53:34
630
1
原创 链表、文件(C语言)学习步骤
链表:理解基本的链表操作,自己动手实现常见的操作(如插入、删除、遍历等),并掌握链表的高级用法(如双向链表、循环链表等)。文件操作:掌握文件的打开、读写、关闭等基本操作,学会处理文本和二进制文件,理解文件指针和错误处理机制。
2024-12-23 21:53:32
602
原创 链表综合题2
(1)如果命令是I,功能为创建空链表,对应函数:void List_Init(head);(2)如果命令是A,后跟一个整数data,功能为向链表尾部追加一个数据data,(5)如果命令是N,后跟一个整数n和d,功能为向链表的第n个位置插入数据d,(3)如果命令是C,后跟一个整数N,再跟N个整数,功能为向链表尾部追加N个。(6)如果命令是F,后跟一个整数d,功能为在链表查找数据d,返回其位序,若。(7)如果命令是D,后跟一个整数n,功能为删除链表第n个位置的数据,可通过。对于以下数据结点的结构定义,
2024-12-23 21:45:48
485
原创 链表综合题1
(3)实现一个函数char* BookRoom(Room *head,int price),预定价位为price的房间。(4)实现一个函数Room* delRoom(Room *head,char *roomN),删除roomN表示的客房号,并更新文件room_info.txt中的客房信息。(1)实现一个函数int InitRoomInfo(Room **head,int n),从文件room_info.txt中读入n个客房信息,并采用链式存储,成功则返回读取的记录数,失败返回-1。int price;
2024-12-23 21:43:11
423
原创 编写简单有序链表的创建和查询修改
(1)创建一个单向链表,其结点包含值(number)和序号(xuhao)两个整型数据字段(序号从1开始递增,相邻两结点的序号相差1,下同), 输出该链表(按顺序从头部开始输出结点的值,相邻结点值之间用一个空格隔开,最后一个结点的值后不包含空格,下同);(6)对链表的任何修改操作,都必须保证操作后,链表中从第1个结点开始,序号始终是从1开始递增,相邻结点的序号值相差1.(4)插入结点: 输入整数 n和整数x,在原链表中序号为n的结点后插入值为x的新结点,然后输出该链表;输入第二行:输入要查找的序号3。
2024-12-19 10:58:07
483
原创 链表尾插法
使用 Node** pphead 可以在函数内部修改主函数中的头指针,例如在链表为空时,插入的第一个节点需要修改头指针的值。当链表为空时,直接将新节点赋值给 *pphead,即更新主函数中的头指针。• 为什么使用 Node** pphead 而不是 Node* phead?3. 遍历链表,找到尾节点(tail->next == NULL)。• 如果为空,直接将新节点作为头节点。• 如果不为空,继续以下步骤。4. 将新节点插入到尾节点之后。• 如何处理链表为空的情况?
2024-12-18 14:19:35
313
原创 贪心算法一(同类题)赛马
问题:一天小明与他同学准备赛马,他们每人有n匹马,每匹马有一个固定的战力值,战力值高的马会战胜战力值低的马并赢得比赛。每匹马只能出场比赛一次。小明偷看到了他对手每匹马的出场顺序,小明在更改自己马出场顺序后最多能赢多少场比赛。
2024-11-30 09:43:46
475
原创 贪心算法一 分发饼干
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。虽然你有两块小饼干,由于他们的尺寸都是 1,你只能让胃口值是 1 的孩子满足。,这个孩子会得到满足。你的目标是满足尽可能多的孩子,并输出这个最大数值。你有三个孩子和两块小饼干,3 个孩子的胃口值分别是:1,2,3。你有两个孩子和三块小饼干,2 个孩子的胃口值分别是 1,2。,这是能让孩子们满足胃口的饼干的最小尺寸;你拥有的饼干数量和尺寸都足以让所有孩子满足。,我们可以将这个饼干。所以你应该输出 1。所以你应该输出 2。
2024-11-29 15:55:46
548
原创 最大道路问题
一张地图上有有N个城市,他们可以通过双向道路互相连接,但是每两座城市只能有一条双向道路互相连接。现在我们想要满足条件“地图中不能有任意三个城市可以互相直达”,请问满足这个条件的最大道路数是多少?这样做的目的是确保没有三个城市可以互相直达,因为每部分内部没有连接。• t * (n - t) 表示第一部分的每个城市与第二部分的每个城市之间的连接数。• t 是 n 的一半,即 t = n / 2。• n - t 是第二部分的城市数。• t 是第一部分的城市数。
2024-11-29 13:12:43
181
原创 退圈游戏-C语言
有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。:最后一人的初始编号。
2024-11-28 20:35:47
332
原创 排队领水 C语言
排队领水 羊村的供水系统搞砸了,隔壁牛村捐赠的的矿泉水刚刚送达,村长让喜羊羊们排队领水,已知有n个羊村村民正在排队取水,懒羊羊不知道他在队伍的具体哪个位置,但他知道有不少于a个人在他前面,有不多于b个人在他后面,你能帮忙计算一下懒羊羊有多少个可能的位置吗?
2024-11-26 20:03:39
179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人