题解¶
牛客 165 题的 Python 题解,全部在站内直接阅读:每页都是「元信息 → 解题思路 → 完整源码」,思路来自题解文件本身的文档字符串。
165 / 165 通过官方样例165 / 165 通过牛客判题机5 题登记为 PyPy3
笔试模板必刷¶
BISHI1–147,牛客「笔试模板必刷」题单,共 147 题。
| 题号 | 标题 | 难度 | 讲解章节 | 状态 |
|---|---|---|---|---|
| BISHI1 | 【模板】序列操作 | 简单 | 05-列表、30-序列与数组、31-链表 | ✅ |
| BISHI2 | 【模板】栈的操作 | 简单 | 32-栈 | ✅ |
| BISHI3 | 【模板】队列操作 | 简单 | 14-标准库速查、33-队列与双端队列 | ✅ |
| BISHI4 | 【模板】集合操作 | 简单 | 08-集合、34-集合与多重集合 | ✅ |
| BISHI5 | 【模板】多重集合操作 | 简单 | 08-集合、34-集合与多重集合、116-平衡树与有序集合 | ✅ |
| BISHI6 | 【模板】整数优先队列 | 简单 | 14-标准库速查、15-面向对象与迭代器生成器、35-优先队列与堆 | ✅ |
| BISHI7 | 字符串哈希 | 简单 | 36-哈希与字符串哈希 | ✅ |
| BISHI8 | 大整数哈希 | 简单 | 36-哈希与字符串哈希 | ✅ |
| BISHI9 | 田忌赛马 | 中等 | 40-排序、47-贪心、111-偏序集与Dilworth定理 | ✅ |
| BISHI10 | 小红的字符串修改 | 简单 | 49-模拟、70-字符串处理 | ✅ |
| BISHI11 | 变幻莫测 | 简单 | 49-模拟 | ✅ |
| BISHI12 | 元素方碑 | 中等 | 12-自定义排序、40-排序 | ✅ |
| BISHI13 | 九倍平方数 | 简单 | 49-模拟、80-数论基础 | ✅ |
| BISHI14 | 特殊的科学计数法 | 简单 | 02-数据类型与转换、23-浮点与科学计数法 | ✅ |
| BISHI15 | 小红的夹吃棋 | 简单 | 49-模拟、110-计算几何入门 | ✅ |
| BISHI16 | 计算一年中的第几天 | 入门 | 10-条件与循环、49-模拟 | ✅ |
| BISHI17 | 纸牌游戏 | 简单 | 49-模拟 | ✅ |
| BISHI18 | 多项式输出 | 简单 | 24-多项式 | ✅ |
| BISHI19 | 乒乓球 | 简单 | 10-条件与循环、49-模拟 | ✅ |
| BISHI20 | 回文日期 | 简单 | 49-模拟、72-回文 | ✅ |
| BISHI21 | 【模板】排序 | 入门 | 12-自定义排序、13-内置函数速查、21-复杂度与Python性能、40-排序 | ✅ |
| BISHI22 | 分数线划定 | 简单 | 12-自定义排序、40-排序 | ✅ |
| BISHI23 | 小红书推荐系统 | 简单 | 07-字典、12-自定义排序、36-哈希与字符串哈希 | ✅ |
| BISHI24 | 谐距下标对 | 入门 | 06-元组与序列通论、12-自定义排序、41-桶计数与离散化 | ✅ |
| BISHI25 | 最大 FST 距离 | 中等 | 12-自定义排序、40-排序 | ✅ |
| BISHI26 | 构造C的歪 | 入门 | 48-构造 | ✅ |
| BISHI27 | 构造数对 | 简单 | 48-构造 | ✅ |
| BISHI28 | 构造数独 | 简单 | 48-构造、115-高级搜索与精确覆盖 | ✅ |
| BISHI29 | 小红的排列构造① | 简单 | 48-构造 | ✅ |
| BISHI30 | 二进制数1 | 简单 | 02-数据类型与转换、03-运算符与位运算、46-位运算 | ✅ |
| BISHI31 | 二进制不同位数 | 简单 | 02-数据类型与转换、03-运算符与位运算、46-位运算 | ✅ |
| BISHI32 | 被打乱的异或和 | 简单 | 03-运算符与位运算、46-位运算 | ✅ |
| BISHI33 | Poi 的新加法(Easy Version) | 简单 | 22-高精度与大整数 | ✅ |
| BISHI34 | 甜蜜的博弈 | 简单 | 50-博弈论 | ✅ |
| BISHI35 | 【模板】巴什博弈 | 中等 | 50-博弈论 | ✅ |
| BISHI36 | 【模板】扩展巴什博弈 | 较难 | 50-博弈论 | ✅ |
| BISHI37 | 数位差与数值和的构造 | 简单 | 48-构造 | ✅ |
| BISHI38 | 有向二分图构造 | 简单 | 48-构造、93-拓扑排序与二分图 | ✅ |
| BISHI39 | 【模板】Pollard-Pho算法 | 中等 | 83-整除分块与数论进阶 | ✅ |
| BISHI40 | 数组取精 | 中等 | 83-整除分块与数论进阶 | ✅ |
| BISHI41 | 【模板】整除分块 | 中等 | 83-整除分块与数论进阶 | ✅ |
| BISHI42 | 余数求和 | 中等 | 83-整除分块与数论进阶 | ✅ |
| BISHI43 | 讨厌鬼进货 | 入门 | 47-贪心 | ✅ |
| BISHI44 | 灵异背包? | 简单 | 47-贪心、101-背包问题 | ✅ |
| BISHI45 | 小红的矩阵染色 | 简单 | 47-贪心 | ✅ |
| BISHI46 | 小红的魔法药剂 | 简单 | 47-贪心 | ✅ |
| BISHI47 | 交换到最大 | 简单 | 47-贪心 | ✅ |
| BISHI48 | 小红的整数配对 | 简单 | 47-贪心 | ✅ |
| BISHI49 | 小红闯关 | 中等 | 35-优先队列与堆、47-贪心 | ✅ |
| BISHI50 | [JSOI2007]建筑抢修 | 中等 | 35-优先队列与堆、47-贪心 | ✅ |
| BISHI51 | 低买高卖 | 中等 | 35-优先队列与堆、47-贪心 | ✅ |
| BISHI52 | 奥赛组队 | 中等 | 47-贪心 | ✅ |
| BISHI53 | [P1080] 国王游戏(简化版) | 中等 | 47-贪心 | ✅ |
| BISHI54 | 货物堆放 | 中等 | 47-贪心 | ✅ |
| BISHI55 | 判断质数 | 入门 | 13-内置函数速查、80-数论基础 | ✅ |
| BISHI56 | 分解质因数 | 简单 | 80-数论基础 | ✅ |
| BISHI57 | 最大公因数与最小公倍数 | 简单 | 03-运算符与位运算、80-数论基础 | ✅ |
| BISHI58 | 矩形游戏 | 简单 | 80-数论基础 | ✅ |
| BISHI59 | 阶乘末尾非零数字 | 中等 | 84-组合数学 | ✅ |
| BISHI60 | 大水题 | 简单 | 80-数论基础 | ✅ |
| BISHI61 | 小q的数列 | 简单 | 80-数论基础 | ✅ |
| BISHI62 | 斐波那契数列 | 简单 | 85-基础数学与递推 | ✅ |
| BISHI63 | 计算阶乘 | 简单 | 13-内置函数速查、22-高精度与大整数、85-基础数学与递推 | ✅ |
| BISHI64 | 【模板】快速幂Ⅰ ‖ 整数 | 中等 | 45-倍增、81-快速幂与逆元 | ✅ |
| BISHI65 | 【模板】分数取模 | 中等 | 81-快速幂与逆元、114-同余方程组与离散对数 | ✅ |
| BISHI66 | 子数列求积 | 中等 | 84-组合数学 | ✅ |
| BISHI67 | 穿搭大挑战 | 简单 | 49-模拟、84-组合数学 | ✅ |
| BISHI68 | 刷题统计 | 简单 | 42-前缀和与差分 | ✅ |
| BISHI69 | [HNOI2008]越狱 | 简单 | 84-组合数学 | ✅ |
| BISHI70 | 【模板】组合数 | 中等 | 84-组合数学 | ✅ |
| BISHI71 | 人员分组问题 | 中等 | 84-组合数学 | ✅ |
| BISHI72 | 中位数之和 | 较难 | 85-基础数学与递推、118-分治进阶:整体二分与CDQ | ✅ |
| BISHI73 | 【模板】欧拉函数Ⅰ ‖ 单个整数 | 中等 | 82-欧拉函数与欧拉降幂 | ✅ |
| BISHI74 | 【模板】非质模数下的乘法逆元 | 中等 | 81-快速幂与逆元、114-同余方程组与离散对数 | ✅ |
| BISHI75 | 【模板】欧拉降幂 | 中等 | 82-欧拉函数与欧拉降幂 | ✅ |
| BISHI76 | 迷宫寻路 | 简单 | 60-DFS深度优先搜索 | ✅ |
| BISHI77 | 数水坑 | 简单 | 60-DFS深度优先搜索 | ✅ |
| BISHI78 | 全排列 | 简单 | 11-函数、60-DFS深度优先搜索 | ✅ |
| BISHI79 | 取数游戏 | 中等 | 60-DFS深度优先搜索、62-记忆化搜索与剪枝、115-高级搜索与精确覆盖 | ✅ |
| BISHI80 | 走迷宫 | 简单 | 61-BFS广度优先搜索 | ✅ |
| BISHI81 | 剪纸游戏 | 简单 | 61-BFS广度优先搜索 | ✅ |
| BISHI82 | 没挡住洪水 | 简单 | 61-BFS广度优先搜索 | ✅ |
| BISHI83 | 迷宫问题 | 中等 | 60-DFS深度优先搜索、61-BFS广度优先搜索 | ✅ |
| BISHI84 | 时津风的资源收集 | 中等 | 61-BFS广度优先搜索 | ✅ |
| BISHI85 | 【模板】整数域二分 | 简单 | 14-标准库速查、44-二分 | ✅ |
| BISHI86 | 圆覆盖 | 中等 | 44-二分、110-计算几何入门 | ✅ |
| BISHI87 | [CQOI2010]扑克牌 | 中等 | 44-二分 | ✅ |
| BISHI88 | 小苯的魔法染色 | 中等 | 44-二分 | ✅ |
| BISHI89 | 山峰数组计数 | 中等 | 44-二分 | ✅ |
| BISHI90 | 【模板】记忆化搜索 | 中等 | 62-记忆化搜索与剪枝 | ✅ |
| BISHI91 | 拼接木棍 | 中等 | 44-二分 | ✅ |
| BISHI92 | 【模板】前缀函数(kmp) | 中等 | 71-字符串匹配KMP | ✅ |
| BISHI93 | 【模板】Trie 字典树 | 中等 | 73-Trie字典树 | ✅ |
| BISHI94 | 【模板】马拉车算法 | 中等 | 72-回文 | ✅ |
| BISHI95 | 【模板】链式前向星 | 简单 | 90-图的表示与遍历 | ✅ |
| BISHI96 | 先序遍历、中序遍历和后序遍历 | 简单 | 31-链表、94-树上算法 | ✅ |
| BISHI97 | 旺仔哥哥走迷宫 | 中等 | 61-BFS广度优先搜索 | ✅ |
| BISHI98 | 谍中谍中谍中谍中谍... | 中等 | 38-并查集、112-连通性:强连通分量与割点 | ✅ |
| BISHI99 | 我朋友的朋友不是我的朋友 | 中等 | 36-哈希与字符串哈希、112-连通性:强连通分量与割点 | ✅ |
| BISHI100 | 二分图判定 | 中等 | 93-拓扑排序与二分图 | ✅ |
| BISHI101 | 世界树上找米库 | 中等 | 61-BFS广度优先搜索 | ✅ |
| BISHI102 | 【模板】并查集 | 较难 | 38-并查集 | ✅ |
| BISHI103 | 【模板】有依赖的背包问题 | 中等 | 101-背包问题 | ✅ pypy3 |
| BISHI104 | 修复公路 | 中等 | 38-并查集、92-最小生成树 | ✅ |
| BISHI105 | 【模板】单源最短路Ⅰ ‖ 无权图 | 中等 | 61-BFS广度优先搜索、91-最短路 | ✅ |
| BISHI106 | 【模板】单源最短路Ⅲ ‖ 非负权图 | 较难 | 91-最短路 | ✅ |
| BISHI107 | 【模板】最小生成树 | 较难 | 92-最小生成树 | ✅ |
| BISHI108 | 最优乘车 | 简单 | 91-最短路、117-图论进阶:k短路与关键路径 | ✅ |
| BISHI109 | 邮递员送信 | 中等 | 91-最短路、117-图论进阶:k短路与关键路径 | ✅ |
| BISHI110 | 【模板】静态区间和(前缀和) | 简单 | 42-前缀和与差分 | ✅ |
| BISHI111 | 【模板】差分 | 简单 | 42-前缀和与差分 | ✅ |
| BISHI112 | 【模板】二维前缀和 | 中等 | 42-前缀和与差分 | ✅ |
| BISHI113 | 【模板】二维差分 | 中等 | 42-前缀和与差分 | ✅ |
| BISHI114 | 【模板】滑动窗口 | 简单 | 37-单调栈与单调队列、43-双指针与滑动窗口 | ✅ |
| BISHI115 | 可匹配子段计数 | 简单 | 43-双指针与滑动窗口 | ✅ |
| BISHI116 | 【模板】双指针 | 中等 | 43-双指针与滑动窗口 | ✅ |
| BISHI117 | 小苯的IDE括号问题(easy) | 中等 | 32-栈、43-双指针与滑动窗口 | ✅ |
| BISHI118 | 相差不超过k的最多数 | 中等 | 41-桶计数与离散化、43-双指针与滑动窗口 | ✅ |
| BISHI119 | 小红的01子序列构造(easy) | 中等 | 43-双指针与滑动窗口 | ✅ |
| BISHI120 | ??? | 较难 | 43-双指针与滑动窗口 | ✅ |
| BISHI121 | 数列后缀极大位置统计 | 简单 | 37-单调栈与单调队列、104-DP优化 | ✅ |
| BISHI122 | 区间后缀极大位置计数 | 简单 | 37-单调栈与单调队列 | ✅ |
| BISHI123 | 环形字符串跃迁 | 中等 | 70-字符串处理 | ✅ |
| BISHI124 | 【模板】最近公共祖先(LCA) | 中等 | 45-倍增、94-树上算法、113-树链剖分 | ✅ |
| BISHI125 | 【模板】静态区间最值 | 中等 | 39-树状数组与线段树、45-倍增 | ✅ |
| BISHI126 | 【模板】动态区间和Ⅱ ‖ 区间修改 + 区间查询 | 较难 | 39-树状数组与线段树、113-树链剖分 | ✅ |
| BISHI127 | 区间根号与区间求和 | 中等 | 39-树状数组与线段树 | ✅ |
| BISHI128 | 区间加乘与单点求值 | 中等 | 39-树状数组与线段树 | ✅ pypy3 |
| BISHI129 | 区间增量与区间小于计数 | 中等 | 39-树状数组与线段树、116-平衡树与有序集合、118-分治进阶:整体二分与CDQ | ✅ |
| BISHI130 | 区间取反与区间数一 | 中等 | 39-树状数组与线段树 | ✅ pypy3 |
| BISHI131 | 数楼梯 | 简单 | 85-基础数学与递推、100-DP入门 | ✅ |
| BISHI132 | 小红的地砖 | 简单 | 100-DP入门 | ✅ |
| BISHI133 | 最长不下降子序列 | 简单 | 102-线性DP、111-偏序集与Dilworth定理 | ✅ |
| BISHI134 | 最大子段和 | 简单 | 102-线性DP | ✅ |
| BISHI135 | 三角形取数(Hard Version) | 中等 | 102-线性DP | ✅ |
| BISHI136 | 【模板】01背包 | 简单 | 101-背包问题 | ✅ |
| BISHI137 | 【模板】完全背包 | 中等 | 101-背包问题 | ✅ |
| BISHI138 | 【模板】多重背包 | 中等 | 101-背包问题 | ✅ pypy3 |
| BISHI139 | 【模板】二维费用背包 | 中等 | 101-背包问题 | ✅ |
| BISHI140 | 【模板】分组背包 | 较难 | 101-背包问题 | ✅ |
| BISHI141 | 来硬的 | 较难 | 101-背包问题 | ✅ |
| BISHI142 | 最大学分 | 较难 | 101-背包问题 | ✅ |
| BISHI143 | 没有上司的舞会 | 较难 | 103-区间树形状压DP | ✅ |
| BISHI144 | 食物链计数 | 较难 | 103-区间树形状压DP | ✅ |
| BISHI145 | 石子合并 | 较难 | 103-区间树形状压DP | ✅ |
| BISHI146 | 收集金币 | 中等 | 62-记忆化搜索与剪枝、104-DP优化 | ✅ |
| BISHI147 | 旅行者的大逃脱 | 困难 | 104-DP优化 | ✅ pypy3 |
输入输出练习¶
PIO1–18,牛客「输入输出练习」题单,共 18 题。
| 题号 | 标题 | 难度 | 讲解章节 | 状态 |
|---|---|---|---|---|
| PIO1 | 只有输出 | 入门 | 01-语法与执行模型、20-输入输出处理 | ✅ |
| PIO2 | 单组_A+B | 入门 | 20-输入输出处理 | ✅ |
| PIO3 | 多组_A+B_EOF形式 | 入门 | 16-模块-异常-文件、20-输入输出处理 | ✅ |
| PIO4 | 多组_A+B_T组形式 | 入门 | 20-输入输出处理 | ✅ |
| PIO5 | 多组_A+B_零尾模式 | 入门 | 20-输入输出处理 | ✅ |
| PIO6 | 单组_一维数组 | 入门 | 09-推导式、20-输入输出处理 | ✅ |
| PIO7 | 多组_一维数组_T组形式 | 入门 | 20-输入输出处理、21-复杂度与Python性能 | ✅ |
| PIO8 | 单组_二维数组 | 入门 | 09-推导式、20-输入输出处理 | ✅ |
| PIO9 | 多组_二维数组_T组形式 | 入门 | 20-输入输出处理、21-复杂度与Python性能 | ✅ |
| PIO10 | 单组_字符串 | 入门 | 04-字符串、20-输入输出处理 | ✅ |
| PIO11 | 多组_字符串_T组形式 | 入门 | 04-字符串、20-输入输出处理 | ✅ |
| PIO12 | 单组_二维字符数组 | 入门 | 04-字符串、20-输入输出处理 | ✅ |
| PIO13 | 多组_带空格的字符串_T组形式 | 入门 | 04-字符串、20-输入输出处理 | ✅ |
| PIO14 | 单组_保留小数位数 | 入门 | 20-输入输出处理、23-浮点与科学计数法 | ✅ |
| PIO15 | 单组_补充前导零 | 入门 | 20-输入输出处理 | ✅ |
| PIO16 | 单组_spj判断YES与NO | 入门 | 20-输入输出处理 | ✅ |
| PIO17 | 单组_spj判断浮点误差 | 入门 | 20-输入输出处理、23-浮点与科学计数法 | ✅ |
| PIO18 | 单组_spj判断数组之和 | 入门 | 20-输入输出处理 | ✅ |