- 博客(13)
- 收藏
- 关注
原创 C++——vector简介
C++ STL中的vector是一种动态数组容器,支持随机访问和自动扩容。常用操作包括:push_back添加元素、pop_back删除尾部元素、size获取大小等。示例展示了用vector解决查找最大值位置的问题,通过push_back输入数据并遍历比较。相比静态数组,vector更灵活高效,特别适合编程竞赛使用。其动态特性和丰富功能使其成为处理序列数据的理想选择。
2025-12-07 17:27:39
248
原创 信息学奥赛一本通——1336:【例3-1】找树根和孩子
摘要:本文介绍了一个处理树结构数据的算法题。题目要求:1)找出树根(没有父节点的节点);2)找出孩子最多的节点;3)按升序输出该节点的孩子。输入包含节点数n、边数m和m条父子关系边。通过构建树结构体(记录父节点和子节点列表),首先遍历找到根节点,然后比较各节点的子节点数量确定最大值节点,最后排序输出其子节点。示例输入8个节点7条边,输出显示根节点4,最多子节点6,其子节点7和8。
2025-12-07 17:00:03
450
原创 东方博宜——2164. 子结点的数量
摘要:题目要求统计树结构中每个节点的子节点数量。给定n个节点和n-1条父子关系边,输出按编号顺序排列的各节点子节点数。提供三种解法:1)数组暴力法,直接统计每个父节点的子节点数;2)使用vector容器存储子节点列表;3)结构体法完整构建树结构。其中数组法最简单高效,适合初学者;容器法和结构体法更贴近树的实际存储结构。输入样例为4个节点,输出"1 2 0 0"表示各节点的子节点数。
2025-12-06 17:23:51
292
原创 信息学奥赛一本通——2050:【例5.20】字串包含
摘要:本文探讨字符串循环移位包含问题。通过将字符串首字符移至末尾的操作定义,判断两个字符串是否存在移位包含关系。提出一种优化思路:将末尾字符移至首位实现等价操作。给出C++实现方案,通过字符串扩展和循环比较,利用find函数检测子串关系。对于输入样例"AABCD CDAA",程序正确输出true。算法时间复杂度与字符串长度相关,适用于长度不超过30的字符串。
2025-12-05 22:51:35
720
原创 信息学奥赛一本通——1214:八皇后
本文介绍了八皇后问题的求解方法。通过回溯算法枚举所有可能的皇后摆放位置,使用数组记录92种有效解,并按字典序排序后根据输入序号输出对应解。代码中定义四个数组分别检测行列和斜线冲突,深度优先搜索生成所有解并存储,最后根据查询输出指定编号的解。
2025-12-05 22:04:04
274
原创 排列组合在c++的应用
排列意为:在n个数中选出m个数进行排序。注意不要按照习惯把i--写成i++了。组合意为:和排列一样,但不考虑顺序。这是在5个数中选3个。这是在5个数中选2个。公式1(在5个数中选3个)公式2(在5个数中选3个)在5个数中选出3个数。
2025-03-22 19:16:59
287
原创 东方博宜——1776. 谁的孙子最多II:D
1776. 谁的孙子最多II(问题描述给定一棵树,其中 1号结点是根结点,问哪一个结点的孙子结点最多,有多少个。(孙子结点,就是儿子结点的儿子结点。输入第一行一个整数 N(N≤10000),表示树结点的个数。此后 N−1 行,第 i 行包含一个整数 fi,表示 i+1 号结点的父亲。输出一行两个整数,表示孙子结点最多的结点,以及其孙子结点的个数,如果有多个,输出编号最小的。样例。
2024-11-29 20:51:15
608
原创 1108. 正整数N转换成一个二进制数———东方博宜:D
输入一个不大于 32767 的整数 n ,将它转换成一个二进制数。输入只有一行,包括一个整数 n (0≤n≤327670)。
2024-11-15 21:26:55
321
原创 信息学奥赛一本通C++语言——1212:LETTERS
第五章 搜索与回溯算法时间限制: 1000 ms 内存限制: 65536 KB提交数:50277 通过数: 23283。
2024-11-08 21:39:33
410
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1