自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法竞赛集训:迷宫最短路(BFS/双向BFS/A*/0-1 BFS)、股票交易DP与区间数据结构(BIT/线段树/主席树/Mo)全解析与C++模板

场景:算法竞赛集训。角色:毒舌但惜才的金牌教练,以及经常 TLE/WA 的搞笑队员张超时。三幕问答,层层递进:从暴力/朴素,到记忆化/预处理,再到高级数据结构/数学优化。末尾提供详细答案与标准 C++ 模板(ACM 风格、fast IO),附必要的数学推导(LaTeX)。

2026-01-16 15:59:45 674

原创 ACM/ICPC 算法集训:C++模板与算法思维三轮问答(DFS/BFS/A*/前缀和/BIT/线段树懒标记/股票DP)

教练:张超时,今天三轮“勉强及格”。去机房罚坐,把今天的三套模板各写 10 遍,明天模拟赛要是还 TLE/WA,就——退队!

2026-01-16 15:50:45 612

原创 面试实录:大厂 Java 面试官 vs “水货”谢飞机(王大瓜)|一致性、幂等、可观测性深度解析

本文以“面试官 vs 水货谢飞机(王大瓜)”的三轮问答串起内容电商后台的关键技术面:简单问题给出清晰答案,复杂问题明确欠缺点,并在详解中提供可直接落地的实践与代码。希望你能基于这些脚手架,完成从业务场景到工程落地的闭环。祝每一位来自吉林榆树的同学,都能在大厂面试场上飞起来。

2026-01-15 22:39:03 556

原创 严肃面试官 vs 搞笑水货程序员谢飞机(本名王大瓜)——互联网大厂 Java 面试实录与技术拆解

谢飞机:我用 Resilience4j 的 RateLimiter、Bulkhead、CircuitBreaker 三件套,先在网关限流,服务内用舱壁,错误率到比如 50% 就熔断,半开探活。三轮面试串联电商秒杀、支付风控、内容审核与可观测性,既有即兴发挥,也有标准答案详解与代码片段,帮助你把高并发、微服务与云原生的关键技术点真正落地。谢飞机:我上来就上 Redis 预扣库存,Kafka 异步落库,MySQL 搭配行锁抗一下,Nginx 做个漏斗限流,前端做按钮防抖,服务端再加个令牌桶。

2026-01-15 22:25:49 250

原创 二分搞不明白?来看看另一个思路吧~

用纯位运算的思想实现二分查找

2025-07-12 15:57:50 269

原创 C++ STL二分查找双雄:lower_bound与upper_bound完全指南

C++ STL中的lower_bound和upper_bound是高效二分查找的核心工具。lower_bound查找有序序列中第一个不小于给定值的元素位置,而upper_bound则查找第一个大于给定值的元素位置。两者都支持自定义比较函数,时间复杂度为O(log n)。主要应用场景包括元素存在性检查、计算元素出现次数、有序插入、查找范围以及求解最长递增子序列等算法问题。使用时需注意数据必须预先排序,且比较函数要与排序时保持一致。掌握这两个函数能显著提升算法编程效率,是处理有序数据不可或缺的工具。

2025-07-07 15:52:17 453

原创 一文打败最长上升子序列

最长上升子序列(LIS)是动态规划经典问题,本文详解两种高效解法:1)动态规划法(O(n²)):定义dp[i]为以nums[i]结尾的LIS长度,通过双重循环递推求解;2)贪心+二分法(O(n log n)):维护tails数组记录各长度LIS的最小末尾元素,使用二分查找优化插入过程。动态规划直观易理解,适合小规模数据;贪心法高效处理大规模数据但无法直接输出子序列。文章还提供了输出具体序列的扩展解法,并对比了两种方法的优缺点和适用场景。掌握这两种解法有助于解决资源调度、生物序列分析等实际问题。

2025-07-05 14:45:18 1006

原创 动态规划--背包九讲

摘要: 本文系统讲解背包问题的九大类目,涵盖01背包、完全背包、多重背包等经典模型,以及混合背包、二维费用背包等扩展问题。核心内容包括: 基础模型:01背包(逆序滚动数组)、完全背包(正序更新)、多重背包(二进制拆分优化); 进阶场景:分组背包(每组选一)、依赖背包(树形DP)、二维费用(双限制条件); 变体处理:泛化物品抽象、方案数统计、输出具体路径等方法。 通过状态转移方程、代码模板和优化技巧(如单调队列、剪枝),提供从理论到实践的完整解决方案,适用于算法竞赛及动态规划学习。

2025-07-05 11:14:33 1116

原创 Codeforces-EDU-SegmentTree-Part1

CodeforcesEDU线段树专题

2022-05-27 16:19:51 440

原创 codeforces1567B

题目链接点这里codeforces1567B题意:不久将举行国际象棋比赛,届时将有 n 位国际象棋选手参加。 每个参与者将与其他参与者进行一场比赛。 每场比赛的结果要么是一个玩家赢,另一个玩家输,要么是双方平局。每个玩家对锦标赛都有自己的期望,他们可以是以下两种类型之一:玩家不想输掉任何一场比赛(即以零损失完成比赛);玩家想要赢得至少一场比赛。您必须确定是否存在所有比赛的结果,以便所有玩家都满足他们的期望。 如果有多种可能的结果,请打印其中任何一个。 如果没有,请报告这是不可能的。输入第一行包含一个整

2021-09-12 22:51:59 205

原创 哈希表(散列表)

散列表(哈希表)哈希表也叫散列表,哈希表是一种数据结构,它提供了快速的插入操作和查找操作,无论哈希表总中有多少条数据,插入和查找的时间复杂度都是为O(1),因为哈希表的查找速度非常快,所以在很多程序中都有使用哈希表,例如拼音检查器。这里先说一下哈希(hash)表的定义:哈希表是一种根据关键码去寻找值的数据映射结构,该结构通过关键码映射的位置去寻找存放值的地方。将关键码映射为散列表中适当存储位置的函数称为散列函数(哈希函数),所得的存储位置称为散列地址(hash address)。由于hash的特性,导

2021-09-04 10:19:45 866

原创 并查集简单应用

并查集两个操作:合并和查询int find(int x)//查询操作{ if(p[x]!=x)p[x]=find(p[x]); return p[x];}void merge(int x,int y)//将x并到y上{ p[find(x)]=find(p[y]);}开始时每个集合都是一个独立的集合,并且都是等于自己本身下标的数例如:p[1]=1,p[2]=2;如果是合并操作的话那么就将集合进行合并,合并的操作是:p[1]=p[2]=2;所以1的祖宗节点便成为了2

2021-09-04 09:37:38 184

原创 Trie树

Trie树Trie树是一种高效存储查询字符串的数据结构,包含插入和查询两种操作。详见代码:#include<iostream>using namespace std;const int N=100010;int son[N][26],cnt[N],idx;//建树,cnt存的是字符串出现的次数,idx是当前用到了第几个节点。char s[N];void insert(char *str){ int q=0; for(int i=0;str[i];i++)

2021-08-31 11:32:01 113

原创 数学建模matlab学习手记-计算篇

数学建模matlab手记(包含常微分方程)计算篇计算不定积分clear;clcsyms xy=y(x);int(y,x);%matlab求不定积分不会给结果加常数C计算定积分int(y,x,1,pi/2);%加上上下限 +inf:正无穷 -inf:负无穷积分有时会出现积不出来的情况,这时使用数值积分integral(y,0,4)%0,4为上下限,注意要将y写成句柄形式,使用.* ./ .^等求解方程,方程组solve函数syms xansw=solve

2021-07-28 10:39:02 227

空空如也

空空如也

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

TA关注的人

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