- 博客(25)
- 收藏
- 关注
原创 草履虫也能看懂的Ping和Traceroute实验指南
本文介绍了如何使用Python和Scapy库模拟实现网络诊断工具ping和traceroute。实验分为两部分:第一部分详细说明了如何创建一个简单的ping工具,包括发送ICMP请求包、计算往返时间等关键代码;第二部分讲解了traceroute的实现原理,通过逐步增加TTL值来追踪路由路径。文章提供了完整的Python代码示例,并给出了实验准备、运行步骤和常见问题解决方法。实验成功时,ping将显示目标主机的响应时间,traceroute将输出完整路由路径及每跳延迟。本实验需要在Linux系统下使用管理员权
2025-11-18 17:18:48
328
原创 【数据结构期末重点复习】集合与散列&并查集
本文介绍了集合、并查集和散列表的核心概念与实现方法。集合可通过位向量(适用于小型固定全集)或有序链表(适用于动态集合)存储。并查集使用树的双亲表示法,支持查找、合并操作,并通过加权合并和路径压缩进行优化。散列表采用直接定址、除留余数等方法构造,处理冲突时使用线性探测、二次探测等闭散列法。关键实现包括集合运算、并查集操作及散列冲突解决方案,均提供了代码示例说明核心算法。
2025-11-13 18:58:46
679
原创 【数据结构期末重点复习】线性表
本文摘要: 线性表是n个数据元素的有限序列,具有直接前驱和后继关系。其存储方式分为顺序表和链表。顺序表采用连续存储空间,支持随机存取,存储密度高(1),但插入、删除效率低(O(n))且扩容困难。顺序表的基本操作包括搜索(平均比较(n+1)/2次)、插入(平均移动n/2次)和删除(平均移动(n-1)/2次)。典型应用包括集合的并、交运算。顺序表适合静态数据,但动态操作和空间利用率存在局限。
2025-11-11 17:31:28
917
原创 【YOLO系列目标检测模型实战学习笔记】如何选择合适的数据集
本文介绍了目标检测常用的VOC和COCO数据集。VOC数据集包含约2万张图片和20个类别,采用XML标注格式,适合初学者;COCO数据集规模更大(33万张图片,80个类别),使用JSON格式,支持多任务检测。文章详细说明了两种数据集的结构、标注格式及下载途径(Kaggle等平台),并给出了选择建议:VOC适合快速验证和小规模训练,COCO则更适合复杂场景和多任务需求。重点解析了数据集的目录结构和关键标注信息,为计算机视觉项目的数据准备提供了实用指南。
2025-11-09 15:46:46
613
原创 震惊,vector竟然真的可以快这么多
但是运行发现只能过百分之二十几的数据。然后又瞅了一眼队友的写法,明明思路跟我完全一样,但是他用的是vector,他就能AC?原来栈溢出的影响这么大!看来以后要学着把总是用c风格数组的习惯改掉了......牛客暑期多校第8轮的C题。嗯是签到题 但是卡了我很久 为什么呢。因为一开始我的数组都写的是c风格的数组。
2025-08-07 21:44:25
235
原创 【思考笔记】对目标检测大模型的理解与学习
大模型是指具有大规模参数和复杂计算结构的机器学习模型。这些模型通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数。大模型的设计目的是为了提高模型的表达能力和预测性能,能够处理更加复杂的任务和数据。——九章云极DataCanvas《什么是大模型?一文读懂大模型的基本概念》概括地说就是,大模型是一个。
2025-07-20 20:51:35
862
原创 【C++面向对象程序设计期末复习】——C++11新特性部分
掌握统一初始化使用方法。C++11引入的统一初始化是一种使用花括号{}进行初始化的新语法,旨在简化并统一各种类型的初始化方式。以下是其核心使用方法及注意事项:统一初始化适用于所有类型,包括内置类型、数组、STL容器和自定义类:1.防止窄化转换编译器会拒绝可能导致数据丢失的初始化(如double转int):2.统一语法消除传统初始化方式的混乱(如=、()、{}混用),所有类型均可使用。3.支持聚合初始化对没有用户定义构造函数的类或结构体,可直接初始化成员:优先匹配std::initializ
2025-04-15 19:51:21
214
原创 【C++面向对象程序设计期末复习】——泛型程序设计与STL
在C++中,函数对象是一种重载了函数调用运算符operator()的类对象,也称为仿函数(Functor)。它能够像普通函数一样被调用,同时具备类的特性(如携带状态)。// 定义一个加法函数对象public:Adder add;// 创建函数对象// 输出:7return 0;关键点:operator()可以接受任意参数,返回任意类型。函数对象可以包含成员变量,用于保存状态。
2025-04-15 19:37:37
518
原创 【C++面向对象程序设计期末复习】——异常处理
在C++中,异常处理通过try、throw和catch关键字实现,其核心目的是分离错误检测与处理逻辑,增强程序健壮性。.what()是标准异常类(如std::exception及其派生类)的成员函数,用于返回描述异常原因的字符串信息。按声明顺序检查catch块,第一个类型匹配的块处理异常。栈展开:从抛出点开始,逆向搜索调用栈,析构局部对象,直到找到匹配的catch块。catch:捕获并处理特定类型的异常,参数类型需与throw匹配。若try块内无异常,跳过所有catch块,继续执行后续代码。
2025-04-15 17:09:45
395
原创 【C++面向对象程序设计期末复习】——I/O流
输入流(如cin):数据从外部设备(键盘、文件)流向程序内存。输出流(如cout):数据从程序内存流向外部设备(屏幕、文件)。双向流(如fstream):支持输入和输出。C++通过流类库(如<iostream>、<fstream>)实现I/O操作,流类是面向对象的封装,取代了C语言的函数式I/O(如printf/scanf)。1.打开模式ios::in:读取(ifstream默认)。ios::out:写入(ofstream默认,会覆盖文件)。ios::app:追加写入。
2025-04-15 16:34:00
352
原创 【C++面向对象程序设计期末复习】——继承与派生
1.理解并掌握派生类的声明方式,以及由此引起的成员访问权限的变化;2.理解并掌握派生类对象的构成;3.理解继承与派生体系中构造函数调用次序;4.掌握并能够利用初始化列表实现派生类构造函数的编写;5.理解多继承时产生的二义性问题,并掌握解决方法;6.理解因共同基类问题造成的二义性问题,并了解使用基类解决此问题的方法;7.掌握类型兼容(upcast)的基本内容。派生类通过继承基类来定义,语法格式为:其中,继承方式可以是public、protected或private(默认为private)。示例:继
2025-04-14 22:01:53
1577
原创 【C++面向对象程序设计期末复习】——动态内存与数据结构
指针域:指向下一个节点的地址(单链表)或前后节点(双链表)1.掌握数组类的结构,并利用前述章节内容实现动态数组类;1.运行时动态调整容量(通过new/delete)2.了解链表的基本结构,并能读懂链表结构的代码;3.掌握常用的排序算法,遍历查找和二分查找算法。数据域:存储实际数据(如int、string等)1.基础实现(模拟std::vector)1.编译时确定大小(N必须是常量表达式)3.需手动管理内存(或使用RAII技术)2.内存分配在栈或全局存储区。2.完整实现(含内存管理)
2025-04-14 16:56:00
323
原创 【C++面向对象程序设计期末复习】——操作符重载
操作符重载(Operator Overloading)是面向对象编程中的一项重要特性,允许用户为自定义类型(类或结构体)重新定义运算符的行为,使其像内置类型一样支持自然语义的运算。1) 理解操作符重载的含义与规则,能够对自定义类型进行操作符的重载,使用成员函。3.部分运算符必须作为成员函数:包括()、[]、->和赋值运算符(如=)。1.通常按需返回对象或引用(如+返回新对象,+=返回当前对象的引用)。1.必须至少有一个操作数为自定义类型,防止修改内置运算符的行为。:更自然封装,适合操作数类型固定的场景。
2025-04-06 17:53:02
338
原创 【思维】2的幂次数的二进制特性
此时,x−1的二进制表示会将x的最低位的1变为0,并将该位之后的所有位变为1。此时,x−1会将x的最低位的1变为0,并将该位之后的所有位变为1。因此,x&(x−1)的结果为0,因为x和x−1的所有位都不同。如果x不是2的幂次数,那么它的二进制表示中。在这种情况下,x&(x−1)的结果。2的幂次数的二进制表示中。
2025-04-06 10:59:52
333
原创 队列(queue)和双端队列(deque)&与vector对比
元素连续存储,扩容时需要重新分配一块更大的内存,并复制所有元素到新内存(时间复杂度O(n))。尾部插入均摊O(1),但头部/中部插入需移动元素(O(n))。扩容时的全量复制开销,尤其在频繁头尾操作时更高效,但随机访问稍慢(需二次指针解引用)。扩容时只需新增内存块,无需移动现有元素,头尾插入均为O(1)。:先进先出(FIFO),仅允许在队尾插入、队头删除,不支持随机访问。对于需要频繁两端操作的场景(如队列或滑动窗口),:双向开口,支持高效的头尾插入/删除,允许随机访问(类似。在头尾操作上均保持高效,而。
2025-04-02 17:27:25
521
原创 【C++面向对象程序设计期末复习】—— 模板
函数模板允许定义一个通用函数,其参数和返回值的类型可以参数化。适用于逻辑相同但数据类型不同的场景,如交换、比较、排序等操作。//函数体函数模板可以自动推导类型。但需要注意的是,函数模板不支持隐式类型转换,如int和double混合调用需要显式指定类型。重载优先级:若存在普通函数和模板函数重载,优先调用普通函数。类模板用于创建通用类,成员变量和方法的类型可参数化。常用于容器类(如动态数组、栈、队列)。定义一个类模板的语法:(下面有两个类型参数,仅为示例,类型参数可以只有一个)
2025-04-02 16:36:23
190
原创 【蓝桥杯真题】异或和之和-位运算
这里把21个位拆出来,在内层循环中提取每一个前缀异或和a[j]的第i位的值(即0或1),分别累加到这21个位上。给定一个数组 Ai,分别求其每个子段的异或和,并求出它们的和。或者说,对于每组满足 1≤L≤R≤n 的 L, R,求出数组中第 L 至第 R 个元素的异或和。关于这里的乘法原理是如何把所有情况乘起来的:cnt[i][0]*cnt[i][1]表示第i位上存在0和1的组合次数。例如:若第i位有3个0和5个1,则不同位的组合次数为3*5=15次,只有这15次是有效的、有贡献的。异或运算具有自反性。
2025-04-02 15:40:06
381
原创 dfs-指数
将 1∼n 看做 [1,2,…,n−1,n],对应一个 n 位二进制整数,用 0 代表不选,1 代表选,你需要依次输出 0∼(从 1∼n 中任选若干个整数(可以为 0),输出所有可能的方案。思路:这道题的输出格式可以利用dfs的遍历顺序实现。输入一个正整数 n。−1) 的全部方案。
2025-04-01 16:58:29
327
原创 【C++】如果想输入数量随机的数字并进行操作怎么办?&.peek()的用法
peek()还可以用于输入格式预判(即根据下一个字符决定如何处理输入,比如区分数字和字符串)。直接从标准输入读取,无需先存为字符串。
2025-04-01 09:22:01
276
原创 C++中读取整行输入的方法
方法数据类型内存管理换行符处理适用场景自动自动丢弃推荐用于字符串char[]手动自动丢弃固定缓冲区输入fgetschar[]手动保留在字符串中文件或标准输入cin.getchar[]手动需单独处理多行输入char[]手动需手动清除C风格兼容。
2025-04-01 08:35:23
890
原创 【蓝桥杯真题】封闭图形个数
在蓝桥王国,数字的大小不仅仅取决于它们的数值大小,还取决于它们所形成的“封闭图形”的个数。封闭图形是指数字中完全封闭的空间,例如数字 1、2、3、5、7 都没有形成封闭图形,而数字 0、4、6、9 分别形成了 1 个封闭图形,数字 8 则形成了 2 个封闭图形。值得注意的是,封闭图形的个数是可以累加的。例如,对于数字 68,由于 6 形成了 1 个封闭图形,而 8 形成了 2 个,所以 68 形成的封闭图形的个数总共为 3。在比较两个数的大小时,如果它们的封闭图形个数不同,那么封闭图形个数较多的数更大。
2025-03-31 20:29:36
512
原创 [蓝桥杯真题]数正方形
-----《算法竞赛入门经典》如3+9=12 12%2=0说白了就是在取余过程中该砍掉的部分早晚要砍掉,因为每次相加都在取余这里补充两句。
2025-03-31 19:35:48
993
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅