自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 贝尔数求集合划分方案总数

摘要:本文描述了BUAA ACM/ICPC训练小组为解决单身问题设计的"一卡通大冒险"计划,其中涉及将n张一卡通夹入书中的不同方法数计算。该问题转化为求贝尔数(集合划分数),通过第二类斯特林数递推求解。文章介绍了贝尔数的定义、递推公式和实现方法,最后给出Java代码,利用贝尔三角形计算并对结果取模1000。算法时间复杂度为O(n^2),适用于n≤2000的情况。

2026-04-08 15:35:22 356

原创 快速幂与线性筛求质数

摘要:本文介绍了快速幂算法和素数筛法两种高效计算方法。快速幂通过将线性乘法转换为指数增长,将时间复杂度从O(n)降至O(logn),适用于大数幂运算和模运算。素数筛法包括埃氏筛和线性筛:埃氏筛通过标记质数倍数筛选合数,时间复杂度O(nloglogn);线性筛优化了重复标记问题,确保每个合数只被最小质因数筛除,达到真正的线性时间复杂度O(n)。两种算法均通过代码示例展示了实现细节和优化思路,适用于大数计算和素数筛选场景。

2026-04-08 11:13:21 456

原创 有序整数对个数-欧拉函数

摘要:本文探讨了如何高效计算满足特定条件的有序整数对(x,y)的数量。题目要求x<y≤N,且gcd(x,y)∈(1,x)。通过分析发现,直接暴力枚举会超时,因此采用数学优化方法:1) 枚举公约数d;2) 利用欧拉函数计算互质数对数量;3) 通过埃氏筛预处理欧拉函数值。最终算法时间复杂度得到显著优化,适用于大规模数据(N≤10^5)。文章详细解释了欧拉函数的计算原理和实现方法,并提供了Java代码实现。

2026-04-01 20:14:05 414

原创 博弈论-Nim游戏

摘要:这是一个关于Nim游戏的编程题目。题目描述蓝桥公司通过游戏决定奖金分配,游戏规则是双方轮流从n堆钱中取钱,取走最后一元钱的人获胜。关键在于判断初始状态是否为必胜态(各堆数量异或结果非零)。输入包含测试用例数T和每组测试的堆数n及各堆金额,输出"YES"表示员工能获胜,否则输出"NO"。核心算法通过异或运算判断胜负,代码简洁高效。

2026-03-31 20:03:28 200

原创 Python基础-速通秘籍(下)

本文系统介绍了Python中的组合数据类型及文件操作,涵盖列表、元组、字典、集合等核心数据结构的使用方法。详细讲解了列表的增删改查操作、元组的不可变特性、字典的键值对存储方式以及集合的无序唯一性。在文件操作部分,重点阐述了文本/二进制文件的读写方法、JSON和CSV文件的处理技巧,并介绍了使用Pandas库高效操作Excel文件的实用技巧。文章通过大量代码示例展示了各类数据结构的特性和常用方法,为Python数据处理提供了全面的参考指南。

2026-03-26 11:49:55 512

原创 Python基础-速通秘籍(上)

本文总结了Python基础语法要点,主要包括: 基本语法元素 注释方式(单行#和多行''') 关键字分类(布尔值、流程控制、函数类等) 标识符命名规则 数据类型 数字(整型、浮点型、复数) 字符串(不可变特性、索引切片操作) 其他核心类型(列表、字典、元组等) 程序控制结构 顺序结构(输入输出) 分支结构(if-elif-else) 循环结构(for/while循环及控制语句) 函数编程 函数定义与参数传递(位置/关键字参数) 变量作用域(global/nonlocal) 匿名函数(lambda表达式) 异

2026-03-22 12:06:07 482

原创 竞赛刷题-建造最大岛屿-Java版

给定一个由 1(陆地)和 0(水)组成的矩阵,你最多可以将矩阵中的一格水变为一块陆地,在执行了此操作之后,矩阵中最大的岛屿面积是多少。岛屿面积的计算方式为组成岛屿的陆地的总数。岛屿是被水包围,并且通过水平方向或垂直方向上相邻的陆地连接而成的。

2026-03-09 19:20:20 364

原创 TCP传输大致过程、流量控制与拥塞控制

摘要:TCP传输过程涉及滑动窗口、确认机制和拥塞控制。接收方通过ACK报文动态调整接收窗口(rwnd),发送方据此控制发送速率。TCP采用累积确认和推迟确认机制,快重传机制通过冗余ACK快速检测丢包。拥塞控制使用慢启动、拥塞避免和快速恢复算法,通过拥塞窗口(cwnd)动态调整发送速率:慢启动阶段cwnd指数增长,达到阈值后转为线性增长;检测到拥塞时,cwnd重置并更新阈值。整个过程通过滑动窗口实现流量控制,结合多种算法有效管理网络拥塞。(149字)

2026-01-29 15:33:30 1277

原创 TCP连接管理(三次握手与四次挥手)

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。是互联网协议族中最核心的协议之一。

2026-01-22 16:39:26 979

原创 单源点最短路径-Dijkstra算法

摘要:Dijkstra算法是用于求解带权有向图中单源点最短路径的经典贪心算法。算法通过维护visited、distance和previous三个数组,逐步确定从源点到各顶点的最短路径。以邻接矩阵为例,算法首先初始化数组,然后迭代选择未访问顶点中距离最小的顶点进行访问,并更新其相邻顶点的最短距离。Java实现演示了从顶点V0出发的最短路径计算过程,最终输出路径长度和具体路径。该算法适用于边权非负的图,时间复杂度可通过优化进一步提升。

2025-11-20 16:58:46 1218

原创 差错控制方法-下(海明码与请求重传协议)

摘要:本文系统介绍了两种主要的差错控制技术:海明码和自动重传请求协议(ARQ)。海明码是一种通过添加冗余校验位实现单比特错误检测与纠正的线性纠错码,详细阐述了其编码规则和纠错原理,并给出具体计算示例。ARQ协议包括停止-等待、后退N帧和选择重传三种类型,重点分析了各自的窗口机制、确认机制和超时重传机制的工作流程,通过典型场景说明了不同协议处理数据帧丢失、错误和确认丢失的方法。这些差错控制技术为数据可靠传输提供了重要保障。

2025-10-26 21:53:07 1663

原创 查错控制方法-上(奇偶校验与循环冗余校验)

摘要:差错控制是数据通信中的关键技术,主要包括前向纠错和检错重发两种方式。奇偶校验码是最简单的检错方法,通过添加校验位检测奇数个错误。循环冗余编码(CRC)则基于多项式运算,具有更强的检错能力,通过生成帧校验序列实现错误检测。文章详细介绍了奇偶校验码的一维和二维实现方式,以及CRC编码的计算过程和检错原理,指出CRC虽具备一定纠错能力但主要用于检错。这些方法为数据传输提供了可靠的差错控制机制。

2025-10-24 22:40:39 1113

原创 进制之间的快速转换

本文系统介绍了进制概念及其转换方法。首先定义了进制的基本原理,即基于位权展开法的数字表示系统。详细讲解了常见进制(二进制、八进制、十进制、十六进制)的符号集和位权特点,并说明了各进制的表示前缀。重点阐述了十进制与其它进制间的转换方法:二进制转换采用"写一减幂"法;八/十六进制转换则通过寻找最近幂次和倍数实现。同时介绍了二进制与八/十六进制的互转技巧,强调以二进制为中介进行配凑转换。文章最后通过多个实例演示了各种进制转换的具体计算过程,特别推荐了计算机专业适用的快速二进制转换方法。

2025-10-22 21:00:00 1513

原创 类间的关系

面向对象编程中类间关系主要包括6种类型:关联(对象间引用关系)、聚合(整体与部分可分离的强关联)、组合(整体与部分不可分离的最强关联)、依赖(临时性使用关系)、泛化(继承关系)和实现(接口与实现类关系)。每种关系在对象生命周期和所有权方面存在差异,其中组合关系最为紧密,成员对象与整体对象同生共死。这些关系类型为程序设计提供了清晰的类交互模式。

2025-10-12 11:22:00 371 1

原创 快速入门-后端接入deepseek聊天模型-spring ai

本文介绍了使用SpringAI框架接入DeepSeek大模型开发聊天机器人的过程。首先创建SpringBoot项目并配置DeepSeek API,然后通过ChatClient API实现基础聊天功能。接着使用MessageWindowChatMemory实现会话记忆功能,支持多轮对话。文章还探讨了流式输出的实现方式,比较了不同Content-Type的效果差异。最后分享了完整的配置类和控制器代码,包括系统提示设置、会话ID管理和流式/非流式输出选择。该项目展示了如何快速搭建一个具有记忆功能的智能对话系统。

2025-09-19 21:19:37 1268

原创 Git版本控制

本文提供了Git的完整使用指南,包含安装教程、基础概念和常用操作。首先介绍了如何下载安装Git并配置用户信息,然后讲解了Git的核心概念(文件状态、工作区)和基本操作(创建仓库、提交修改、分支管理)。文章详细说明了本地与远程仓库的交互方法,包括推送、拉取代码和解决冲突的技巧,并介绍了标签管理和分支合并等进阶功能。通过具体示例演示了常见操作流程,为Git初学者提供了全面的入门指导。

2025-09-18 21:00:19 1209

原创 判断分解是否是无损分解、是否保持函数依赖

关系模式R(A,B,C,D,E),F={A->C,C->D,B->C,DE->C,CE->A} ,若分解为R1(AD),R2(AB),R3(BC),R4(CDE),R5(AE),判断分解是否是无损分解。4、将F于G进行对比:对比F={B->A,D->A,A->E,AC->B}和G={A->E,B->A,B->E,AC->B,AC->E},发现G中少了D->A。R(A,B,C,D,E),F={B->A,D->A,A->E,AC->B},判断分解R1(ABCE),R2(CD)是否保持函数依赖。

2025-07-01 21:04:10 1205

原创 求属性集闭包、最小函数依赖集和候选码

关系模式R(U,F),其中U=(H,I,J,K,L,M),F={H->I,K->H,LM->K,I->L,KH->M},求R的候选键。R={A,B,C,D,E,G},F={BC->E,DC->B,D->A,B->G,D->E,E->G,B->C},求R的候选键。R={A,B,C,D,E,G},F={B->D,DG->C,BD->E,AG->B,ADG->BC},求F的最小函数依赖集。函数依赖集F={A->BC,E->CH,B->E,CD->EH} ,求AB的闭包。

2025-06-30 19:37:42 1302

原创 一文搞清楚究竟属于第几范式,附例子讲解超详细!

本文主要是作者记录的学习心得,跳出复杂难懂的概念,并最大程度用自己的话概况出来,希望可以帮助到正在学习相关知识的你!

2025-06-29 17:12:05 613

原创 平衡二叉树AVL回顾

上一篇文章提到,正常的二叉查找树的查找操作的时间复杂度是,但对于某些关键字序列构成二叉搜索树,可能会使树退化为链表,使树高大大增加,此时的查找时间复杂度为,这很不利于查找,解决的办法是让树不那么高,让其左右子树的高度基本一致,所以又有了平衡二叉树(AVL树,简称平衡树)。

2025-06-15 21:25:47 1323

原创 二叉查找树BST简单回顾

二叉查找树(Binary Search Tree),又称二叉排序树,二叉搜索树,是一种二叉树数据结构,满足以下性质:左子树结点值<根结点值<右子树结点值。

2025-06-13 21:26:16 1281

原创 树结构以及二叉树简单回顾

一种非线性结构,用来描述元素间层次关系,即一个结点的直接前驱若存在必唯一,直接后驱若存在,可有多个,也就是一对多的关系。

2025-06-11 14:50:16 1298

原创 跨域资源共享CORS问题

跨域资源共享(Cross-Origin Resource Sharing,CORS)是一种机制,允许网页从不同域(跨域)请求资源。默认情况下,浏览器出于安全考虑会阻止跨域HTTP请求,而CORS提供了一种标准化的方式绕过这一限制。在发送请求去后端服务器获取数据时,浏览器会检验当前窗口地址栏与将要请求服务器地址的协议、IP以及端口号是否相同,只要有一个不同,则认为是跨服务器请求数据。 通过代理每次请求服务器端时,需要经过前端服务器,会给前端服务器造成巨大压力,不推荐。 通过预检可以直接与后端联系,先向后端发送

2025-06-05 17:56:38 470

原创 绝对路径与相对路径以及WEB的前后端路径问题

web前端相对路径就是在当前资源所在路径后,拼接目标资源路径,然后发送请求获取目标资源前端绝对路径:以 ’ / ‘ 开头,从固定点出发去寻找资源示例:项目结构1:绝对路径:/项目上下文件/目标资源路径项目结构2:绝对路径:/目标资源路径运行结果1运行结果2分析写绝对路径时,都是以 ‘ / ’ 开头去找目标资源,但是如果不带上项目上下文的路径,会出现404,访问不到目标资源web前端的绝对路径是以http://localhost:8080/为出发点去找目标资源。

2025-06-03 15:16:49 1187

原创 HTTP状态码、请求转发与重定向

1xx:临时响应,需后续操作。2xx:请求成功处理。3xx:重定向或缓存相关。4xx:客户端问题导致失败。5xx:服务器端问题导致失败。

2025-05-26 14:07:26 1100

原创 JavaWeb开发中最常见404资源找不到问题

web下的目标资源访问路径:协议+ip+端口号+项目名称(即项目上下文)+web目录下文件的路径src下的Java文件运行:(这里以注解方式来配置映射路径) ,可以发现就是直接在项目后加上注解中配置的文件映射路径协议+ip+端口号+项目名称(即项目上下文)+配置的文件映射路径乱码情况:但此时我们发现响应回来的数据出现了乱码的情况,原因就是编码与解码使用的字符集不同导致。所以,我们需要让浏览器使用与我们后端相同的字符集进行解码:resp.setContentType(“响应数据的mime类型。

2025-05-21 20:46:50 1115

原创 Java-io流--字节流

美国信息交换标准代码,是一种基于拉丁字母的字符编码标准。用一个字节来表示一个字符,共8位,首位是数字0,后7位二进制数表示(即128)个字符。其中,(十进制)数字0对应48,大写字母A对应65,小写字母a对应97。

2025-05-17 16:26:25 531 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除