- 博客(23)
- 收藏
- 关注
原创 【BYOI R1】意识解离
题目要求判断一个非负整数序列能否表示为若干个单调不增的正整数序列右对齐相加的结果。关键在于检查序列中是否存在递增部分,并确保每个元素都能满足拆分要求。解题思路是遍历序列,当遇到递增元素时增加所需拆分序列数,若任何元素无法满足拆分要求则判定为"No",否则为"Yes"。代码简洁高效,时间复杂度为O(n)。
2025-11-16 21:41:05
763
原创 【USACO25OPEN】It‘s Mooin‘ Time III B
题目摘要: USACO25OPEN题目"哞哞时间III B"要求处理一个字符串中的特殊三元组。给定长度为N的字符串和Q次查询,每个查询给出区间[l,r],需找到满足条件的三元组(i,j,k)(i<j<k,s_j=s_k≠s_i)并计算最大值(j-i)(k-j)。若不存在合法三元组则输出-1。解法采用预存储字符位置并二分查找优化,时间复杂度为O(26·QN)。关键思路是枚举字符作为s_j和s_k,快速定位区间内匹配的s_i位置。 (149字)
2025-11-16 21:24:20
955
原创 【组合数学题目】宇宙分解
题目要求计算序列经过特定操作后能得到的本质不同降序序列数量。关键观察是:所有比前缀最小值大的数都可被删除,但相同值的数删除不同个数的结果相同。因此使用乘法原理计算各数值的可删除方案数乘积,而非简单的2^n。时间复杂度O(n),空间复杂度O(n)。最终结果需对998244353取模。
2025-10-15 15:10:40
1160
原创 【NOIP 2024 T2】遗失的赋值
本文分析了NOIP 2024 T2题目《遗失的赋值》的解法,主要考察变量赋值的组合方案数计算。题目要求在n个变量上满足n-1个二元限制和m个一元限制条件下,求参数a_i,b_i的合法组合数。 关键点在于: 一元限制不能冲突,否则方案数为0 对于无约束区间,方案数为v^(2k) 对于两端受限区间,推导出递推公式f(k)=v^(2k)-v^k+v^(k-1) 解法步骤: 检查一元限制冲突 计算无约束区间方案数 使用推导公式处理受限区间 通过快速幂计算大数次方取模 时间复杂度主要取决于快速幂计算,能够处理题目给定
2025-09-21 21:56:33
877
原创 【Python 入门】(2)Python 语言基础(变量)
本文介绍了Python语言基础中的变量概念,重点讲解了保留字(关键字)和标识符的使用规则。主要内容包括:1) Python保留字列表及查看方法;2) 标识符命名规则,强调不能使用保留字且区分大小写;3) 变量本质是对象标签而非存储盒子的核心概念;4) 变量声明赋值机制及动态类型特性;5) 连等号和多变量赋值的特殊语法。文章通过实例代码演示了变量定义、类型查看等基础操作,帮助初学者理解Python变量的核心特性。
2025-09-13 21:40:46
2236
1
原创 【蓝桥杯 2024 国 Java A】粉刷匠小蓝
题目摘要:蓝桥杯2024国赛Java A组题目"粉刷匠小蓝"要求计算满足特定条件的粉刷顺序数。给定n面墙,每面墙可能被刷蓝(a_i=1)或保持白色(a_i=0)。粉刷时,若将第i面墙刷蓝,则其右侧已刷蓝的墙数必须为偶数。求所有合法粉刷顺序数,对10^9+7取模。解法核心是排列组合数学,通过分析得出方案数为∏(i=1 to m)⌈i/2⌉,其中m为需要刷蓝的墙数。代码通过遍历计算该乘积模数给出答案。
2025-09-10 21:58:46
1425
原创 【CSP-J2019 江西】非回文串
本文分析了CSP-J2019江西题目《非回文串》的解法。题目要求计算给定字符的所有排列中非回文串的数量。关键思路是:先计算全排列总数$n!$,再减去回文串的数量。回文串数量的计算需统计各字符出现频次,若奇数频次字符超过1个则无回文串;否则通过组合数学公式计算回文串数。算法涉及全排列、快速幂、费马小定理求逆元等知识,并需注意模运算中的减法处理。最终答案为全排列数减回文串数取模$10^9+7$的值。
2025-09-07 11:43:29
975
原创 【蓝桥杯 2024 省 Python B】缴纳过路费
本题要求统计满足条件的城市对数量,其中城市间路径成本的最低价在[L,R]区间内。解题采用Kruskal最小生成树算法和并查集数据结构,通过按边权排序后逐步合并集合,利用乘法原理计算符合条件的城市对数量。时间复杂度主要由排序步骤决定,为O(MlogM),适用于大规模数据。关键点在于边处理时动态统计满足区间条件的城市对,最终输出结果。
2025-08-30 12:55:54
1320
原创 【蓝桥杯 2017 国 B】发现环
本文介绍了蓝桥杯2017年国赛B题"发现环"的解法。题目要求在树形网络中添加一条边后形成的环上所有电脑节点。作者提出使用递归回溯法解决:首先通过DFS找到一个环上节点,然后从该节点出发进行回溯寻找环上所有节点。代码实现了该算法,并特别处理了二元环的特殊情况。算法适用于n≤10^5的数据规模,通过标记访问状态和回溯机制高效找出环上节点。最终输出按升序排列的环上节点编号。
2025-08-29 15:57:09
1020
原创 【Python 入门】(1)Python 语言基础(语法特点)
本文介绍了Python语言的语法基础,包括注释规则、代码缩进和编码规范。单行注释使用#,多行注释用三引号"""或'''。Python采用严格缩进来区分代码层次,通常为4个空格或1个Tab键。编码规范遵循PEP 8标准,涉及模块导入、空行使用、运算符间距等。命名规则要求标识符由字母、数字和下划线组成,且区分大小写。模块名小写,类名使用Pascal风格,常量全大写。遵循这些规范能提高代码的可读性和可维护性。
2025-08-28 18:24:14
923
原创 【Python 提高】GUI 界面 Tkinter 库布局管理器 Pack 方法开发指南
Python Tkinter库提供了三种布局管理器:pack、grid和place。本文重点介绍pack方法,它是最简单的相对位置布局管理器,适合快速开发线性布局的GUI界面。pack()按照组件添加顺序自动排列,通过side参数控制方向(TOP/BOTTOM/LEFT/RIGHT),fill参数调整组件填充方式(X/Y/BOTH),padding系列参数设置内外边距。其优点是简单易用,缺点是控制精度有限。文章详细说明了pack布局的空间分配机制,包括组件独占空间、可扩展空间和容器可用空间的概念,并提供了参
2025-08-27 20:36:19
1427
原创 【蓝桥杯 2013 国 AC】网络寻路
题目要求在给定无向图中统计符合特定条件的路径数量。路径必须恰好包含三条边,且中间两个节点必须不同。解决方案是枚举每条边作为中间边,利用节点的度数计算可能的路径组合数。具体公式为:对每条边(u,v),贡献路径数为2*(deg(u)-1)*(deg(v)-1),其中deg表示节点度数。该算法时间复杂度为O(M),适用于大规模数据。代码实现简单高效,直接枚举所有边并累加计算结果即可。
2025-08-25 23:32:23
708
原创 【蓝桥杯 2024 省 C】挖矿
【蓝桥杯2024省C】挖矿问题解析:小蓝在数轴上移动,通过矿洞可获得矿石。问题要求在移动距离≤m时获得最多矿石。解法采用贪心策略,通过预处理正负半轴矿洞数的前缀和,枚举可能路径,使用双指针思想计算最优解。时间复杂度O(n),适用于n≤10^5规模。最终解还需加上原点处的矿洞数。
2025-08-24 11:16:46
1379
原创 【字符串算法】扩展 KMP 算法(Z-Algorithm)
本文介绍了扩展KMP算法(Z-Algorithm)及其应用。该算法用于求解两个数组:字符串b与其各后缀的最长公共前缀长度数组z,以及字符串b与字符串a各后缀的最长公共前缀长度数组p。算法通过维护最远匹配区间[l,r],利用已知结果递推计算后续值,时间复杂度为O(N)。文章详细阐述了算法思想、证明过程,并提供了洛谷P5410的AC代码实现,其中需要注意计算异或和时使用long long类型防止溢出。该算法适用于大规模字符串处理(长度可达2×10^7)。
2025-08-23 23:18:35
2210
原创 【蓝桥杯 2025 国 B】翻倍
题目摘要:给定n个正整数序列,每次操作可将任意一个数翻倍。要求通过最少操作次数使序列变为单调不增(每个数不小于前一个数)。数据范围n≤2×10^5,a_i<2^32。解题思路:从右向左遍历,通过数学方法计算每个数需要翻倍的次数,避免超时。关键点在于处理大数范围和使用对数运算优化。提供AC代码及错误模拟示例,并推荐两道相似题目。
2025-08-22 17:57:11
1244
原创 【蓝桥杯 2023 省 B】砍树
题目摘要: 给定一棵包含n个节点的树和m个无序顶点对(a_i,b_i),要求找出编号最大的边,使得删除该边后所有顶点对都不连通。若不存在则输出-1。算法采用LCA和树上差分技术,通过计算每条边被多少对顶点路径覆盖,找到被所有路径覆盖的边。时间复杂度为O(n log n),适用于1≤n≤10^5的数据规模。
2025-08-22 11:55:29
1139
原创 【蓝桥杯 2023 国 Python A】2023
本文介绍了蓝桥杯2023国赛Python A组题目《2023》的解法。题目要求计算n位十进制数中恰好出现m个"2023"的数字个数。通过组合数学和二项式反演,将问题转化为计算至少出现k个"2023"的方案数,再使用容斥原理得到最终结果。预处理阶乘、逆元和10的幂次后,算法时间复杂度为O(n)。关键点在于正确应用二项式反演和容斥原理,并注意模运算中的负数处理。
2025-08-21 20:43:32
900
原创 【洛谷】P2197【模板】Nim 游戏
这道题目是经典的Nim游戏模板题。题目描述两人轮流从多堆石子中取石子,每次只能从一堆取任意数量,取完者胜。解题关键在于Nim游戏定理:当所有堆石子数的异或结果为0时先手必败,否则先手必胜。证明思路基于归纳法,通过保持异或结果不变的性质来推导。代码实现非常简单,只需计算每组数据的异或和即可判断胜负。本题属于博弈论基础问题,适合作为Nim游戏的入门练习题。
2025-08-21 17:55:57
1205
原创 【洛谷】P3389【模板】高斯消元法
本文介绍了高斯消元法解线性方程组的模板实现。算法通过初等行变换将方程组化为上三角矩阵,若出现0=0则多解,0=c(c≠0)则无解。时间复杂度O(n³),需处理浮点精度问题(eps设为1e-6)。代码实现了找主元、归一化、消元及回代过程,最终输出解或"No Solution"。适用于n≤100的方程组求解,注意处理-0.00和0.00的等价性。
2025-08-19 11:01:37
1041
原创 【洛谷】P3386 【模板】二分图最大匹配
本文介绍了二分图最大匹配的匈牙利算法。二分图指节点可分为两个不相连的集合,最大匹配即选出最多不相交的边。匈牙利算法通过递归寻找增广路径:遍历左部顶点,尝试匹配右部顶点,若冲突则调整已有匹配。文章通过示例图解详细说明了算法步骤,并给出C++实现代码。该算法时间复杂度为O(nm),适用于求解二分图最大匹配问题。
2025-08-19 10:20:17
968
原创 【洛谷】P3387 【模板】缩点(Kosaraju 算法)
洛谷P3387是一道关于有向图缩点的模板题。题目要求在有向图中找到一条路径,使得路径经过的点权之和最大,重复经过的点只计算一次权值。解题方法采用Kosaraju算法将有向图中的强连通分量缩成点,并计算每个缩点的权值总和。缩点后形成DAG图,再通过拓扑排序和动态规划求解最大点权和。文章详细介绍了Kosaraju算法的步骤、正确性证明以及动态规划的实现过程,并附有图示说明和完整AC代码。该算法能有效处理有向图中的强连通分量问题。
2025-08-18 21:35:59
869
原创 【Python 基础】Python pip 使用指南(Windows 版)
本文详细介绍了Python包管理工具pip的配置与使用指南。主要内容包括:1)pip的安装与卸载方法,包含自动安装和手动安装步骤;2)环境变量配置、镜像源设置等优化配置;3)pip核心功能使用,如库的安装、卸载、升级和查看,重点说明了批量操作、版本管理和依赖冲突解决;4)高级功能如预发布版安装、本地包安装、缓存管理等;5)虚拟环境创建和第三方管理工具对比。文章还提供了国内常用镜像源列表和常见问题解决方案,适合Python开发者参考使用。
2025-08-16 15:11:58
4321
原创 【Python 提高】GUI 界面 Tkinter 库应用开发指南(完善中。。。)
特性说明内置无需安装Python 标准库(跨平台支持 Windows/macOS/Linux轻量级安装包仅增加约 1-2 MB易学性语法简单,文档丰富组件丰富20+ 基础控件 + 扩展组件核心组件体系Tkinter是Python GUI开发的瑞士军刀零成本快速构建基础界面通过ttk实现现代化外观事件驱动模型处理用户交互特别适合小型工具开发和硬件项目界面。
2025-08-15 13:31:37
1073
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅