自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Win11任意位置右键新建Markdown文档

相信有很多小伙伴有用md记录笔记的需求,但是每次都要打开Typora或者其他编辑器编辑文件,然后再选保存的路径,这样始终不够直接优雅。这篇小文章给出一个解法,可以实现在任意目录下直接右键新建md文档。

2026-08-29 09:25:16 221

原创 回溯模版及实战(待完善)

并且规定当前时间点不选,后续都不会选(因为后续选,当前不选的情况可以转换成当前选后续不选,因此仅保留当前选后续不选的case即可):可重复枚举,ans = [False] # 用列表初始化,不用单变量ans=False, 注意pfl的变化以及剪枝。:不可重复枚举,O(1)实现剪枝:看左右斜线和上方有没有放置皇后,具体用三个辅助列表实现。:选与不选,注意不选则后续永远不会选的逻辑,并且注意递归出口为剩余差值<=0。斜线占用原理:比如y=x+b,表示某条斜线,那么任意斜线上的点。:可重复枚举括号,用 dfs(

2026-08-05 22:37:57 206

原创 广义优势估计 GAE(Generalized Advantage Estimation)推导

Gt=rt+γrt+1+γ2rt+2+⋯=∑l=0∞γlrt+lG_t = r_t + \gamma r_{t+1} + \gamma^2 r_{t+2}+\dots=\sum_{l=0}^{\infty}\gamma^l r_{t+l}Gt​=rt​+γrt+1​+γ2rt+2​+⋯=l=0∑∞​γlrt+l​γ∈(0,1]\gamma\in(0,1]γ∈(0,1]:折扣因子Vπ(st)=Eπ[Gt∣st]Qπ(st,at)=Eπ[Gt∣st,at]Aπ(st,at)=Qπ(st,at)−Vπ(st

2026-08-02 16:09:44 348

原创 TRPO算法的数学推导

马尔可夫决策过程五元组MSAPrρ0γMSAPrρ0​γSS:状态空间,AA:动作空间;状态转移分布Ps′∣saPs′∣sa:执行动作aaa从状态sss跳转到s′s's′的概率;即时奖励函数rS×A→RrS×A→R,单步奖励rtrstatrt​rst​at​;ρ0s\rho_0(s)ρ0​s:初始状态s0s_0s0​的采样分布;折扣系数γ∈01。

2026-08-02 04:20:23 214

原创 VSCode 使用 Attach模式, 本地/远程调试 Python 程序(免改源码)

本文介绍了一种零侵入式的Python调试方案,适用于PyTorch等深度学习框架及远程服务器调试。核心原理是通过debugpy启动监听端口,由VSCode连接接管调试。配置步骤包括:1)安装debugpy;2)配置VSCode的launch.json为attach模式;3)修改启动命令,添加debugpy参数并设置--wait-for-client确保断点捕获。该方案支持直接终端运行或通过sh脚本启动,保持项目代码纯净的同时,提供完整的断点调试、变量查看等功能。特别适合需要调试模型初始化阶段或第三方库代码的

2026-07-28 14:31:14 251

原创 单调队列-解定长滑窗的最值问题 ( leetcode 239)

每次循环开始前,队列中的元素为【上一个窗口】的所有元素中大于等于窗口右端点元素值的元素按照降序排列得到的序列的一个非空有序子集,并规定除了最大值元素和右端点元素外,中间元素允许缺失!碎碎念,找了很多关于单调队列的说明,但是感觉都不是很本质介直击要害,很多都是在讲算法过程本身,这里贴一下算法思想和代码实现。启发,部分重叠问题都可以从维护循环不变式的角度进行思考构建算法。

2026-07-12 04:07:04 261

原创 算法之变长滑窗

这是因为假设当前外循环为R,l为上一轮循环的合法左边界,那么我们有nums[L…l -1 构成的串均是非法的,如果有衔接包含关系:向右扩展一位的nums[L…l-1 构成的串也是非法的,那么我们可以放心地将当前迭代R的内循环起点跳步到l的位置,而无需从零开始遍历!优化暴力穷举的过程是思考利用已知信息把下一轮迭代的内循环起始位置跳步到 l(l为上一轮循环的合法元素的左边界),而不是又从0开始的重复遍历;最本质的优化:利用遍历的部分重叠维持循环不变式,这里具体是维持l为上一轮的合法元素最左边界。

2026-07-11 02:23:49 649

原创 二分查找的顶层思考模板及实战

类型思考方式目标变体1染色模型找最左蓝边界变体2排除模型根据 mid 信息排除一半区间。

2026-07-11 00:23:48 227

原创 动态规划 DP 完全总结:8 大经典类型 + LeetCode Python 实战模板(待优化)

本文系统介绍了动态规划的解题框架与常见模型,帮助读者从记忆公式转向建立状态模型。主要内容包括: 动态规划通用解题四步法: 定义状态(明确dp[i]或dp[i][j]的含义) 推导状态转移方程(当前状态与之前状态的关系) 初始化边界条件 确定遍历顺序 重点讲解三大核心DP模型: 线性DP(如打家劫舍问题) 二维DP(如最长公共子序列问题) 背包DP(如分割等和子集问题) 每种模型都通过典型例题: 展示状态定义方法 详细推导状态转移方程 提供Python实现代码(含空间优化版本) 列举相关扩展题目 文章强调动态

2026-07-10 02:14:43 229

原创 单调栈理解和实战

碎碎念:时隔多年,又回到了刷题状态,对单调栈又有了新的理解,这里记录一下作为备忘。

2026-05-18 19:35:43 382

原创 高斯公式(散度定理)以及连续性方程推导

在正式推导前,我们需要先明确对流输运的物理图景。在物理学或概率场中,对流输运指的是守恒量(如质量、电荷、或分布概率)伴随介质的宏观速度场发生整体迁移的过程。你可以将其直观地理解为“物质随波逐流”——就像水面上的树叶被河水裹挟着向前运动一样。它区别于因微观热运动产生的浓度扩散(Diffusion)。当介质(或分布)以速度场vrtvrt发生整体运动时,我们可以通过微元几何关系严谨导出J\mathbf{J}J的表达式。根据前面关于流密度矢量J\mathbf{J}J。

2026-05-07 01:42:41 467

原创 Cursor downloading server慢

重新安装下面这个版本的。

2025-11-05 22:51:13 500

原创 Windows SSH 设置免密连接远程 Ubuntu 服务器

原本以为配置ssh免密网上资料那么多应该手到擒来,没想到也会踩大坑,差点逼出强迫症来。。。写个小文章备忘一下,关键是步骤3!有可能你也像我一样折腾了很久,死活没法免密,最后才发现放置公钥keys的路径被别人修改了。

2024-12-25 23:20:17 557

原创 Linux 设置中文支持

新搭建的Ubuntu系统过程中发现它没法支持中文,总结了下述流程。

2024-12-01 00:21:25 1890 1

原创 证明由AB=E得,BA=E

前言相信好多小伙伴在看到矩阵的逆的定义时都会有个小疑惑,为什么只需要证明AB=E,则就可以说明B是A的逆,而无需再证BA,这里给出个小证明。由AB=EAB=EAB=E得:∑k=1naikbkj=\sum_{k=1}^{n}a_{ik}b_{kj}=k=1∑n​aik​bkj​=参考https://www.zhihu.com/question/67232467/answer/1553157064?utm_source=wechat_session&utm_medium=social&am

2021-12-31 18:24:11 7274

原创 leetcode 402 321 316

402 移掉k个数字结合官方题解看下面的思路算法的核心原理是贪心算法,可以思考一下当执行到删k-1步得到最小时值时,如何采取下一步策略能够得到删k的最优解,并利用替换的思想作证明**具体为:**假设一个最优解删除的元素位置为p1,p2,..,pk−1,pkp_1,p_2,..,p_{k-1},p_kp1​,p2​,..,pk−1​,pk​, 设删掉p1,p2,..,pk−1p_1,p_2,..,p_{k-1}p1​,p2​,..,pk−1​位置后的序列为x,则下一步a.删除x中不符合升序的第一个元

2021-04-23 00:48:05 218

原创 数据结构之单调栈

c++模板stack<int> st;for(int i = 0; i < nums.size(); i++){ while(!st.empty() && st.top() >= nums[i]) { st.pop(); } st.push(nums[i]);}

2021-04-19 23:53:07 468

原创 括号位置搜寻与字符串反转

问题:给定字符串,按照括号的优先级对字符串进行反转,输出最后不带括号版本的序列比如:输入:(ab(love)cd)输出:dcloveba解释:先反转love得到:(abevolcd)继续反转得:dcloveba#include<bits/stdc++.h>using namespace std;//v1笨。。void helper(string& input, int l, int r) { int left,count = 0; //在区

2021-04-17 18:47:26 449

原创 关于牛客网的标准输入输出(c++版)及while(cin>>x)的解释

前言刚接触牛客的OJ(Online Judge)编程,吃了不少亏,故此写下此小短文。OJ判分原理牛客的oj判分系统采用的是标准文件输入/输出,也就是说你先编程读取键盘的输入(这里oj系统会把输入文件映射到键盘输入区用以模拟键盘输入),接着你要编程按照一定的输出格式将结果输出到屏幕终端(与输入类似,oj系统会把你编程输出到屏幕终端的内容写入到一个文件中),最后通过对比你写的文件和oj系统预先存入文件的结果,看你的答案与预先输入的答案有多少是一致的,比如完全相同,则表示你成功通过了所有测试,即ac100%

2021-04-01 20:30:21 1981

原创 背包问题的抽象形式

0-1背包抽象 :有N个事物,每个事物n有价值量v和消耗c(c可以是多维的,比如卡车载物,一件物品既消耗体积又消耗载重),在不能重复选择的前提下(即事物最多被选择一次),问如何选择事物能使最后的价值量总和最大。状态转移方程为:其中,dp[i][c1..cn]dp[i][c_1..c_n]dp[i][c1​..cn​] 表示包含i件事物的,在消耗限制条件为c1..cnc_1..c_nc1​..cn​下的最优解,c1−..cn−c_1^-..c_n^-c1−​..cn−​表示将第i件事物考虑在内后,余

2021-03-21 21:25:42 215

原创 证明: 若$q=m$ 或 $q \neq m$ 但$P[q+1] \neq a$ ,则$\sigma(P_qa) = \sigma(P_{\pi[q]}a)$

证明: 若q=mq=mq=m 或 q≠mq \neq mq​=m 但P[q+1]≠aP[q+1] \neq aP[q+1]​=a ,则σ(Pqa)=σ(Pπ[q]a)\sigma(P_qa) = \sigma(P_{\pi[q]}a)σ(Pq​a)=σ(Pπ[q]​a)对于σ(Pqa)\sigma(P_qa)σ(Pq​a),可以将它转化为如下问题:设A={k∣k<q , Pk⊐Pq}A=\{ k \mid k<q \, , \, P_k \sqsupset P_q\}A={k∣k&

2021-03-17 23:09:20 234

原创 DFS&BFS范式

DFS伪代码顶点入栈对顶点作入栈标记防止其二次入栈while 栈非空 访问栈顶p pop 栈顶p for q 为 p 的邻接结点 q 入栈 对q作入栈标记防止其二次入栈广度优先与深度优先在实现上十分类似,只需要把栈换成队列即可DFS伪代码顶点入队对顶点作入队标记防止其二次入队while 队非空 访问队头p pop 队头p for q 为 p 的邻接结点 q 入队 对q作入队标记防止其二次入队...

2021-03-11 11:16:50 283

原创 c++二分查找模板

一、查找已排数组A中 大于等于(或者大于) 给定target的 第一个 元素//当eq_enable为false时 对应【大于】的情况//当eq_enable为true时 对应【大于等于】的情况int binarySearch_GE_or_G(vector<int>& A, int target, bool eq_enable) { int left = 0, right = (int)A.size() - 1, ans = (int)A.size();

2021-03-02 23:20:35 305

原创 Floyd判圈法

在开始正式算法之前,先看看几个示例作铺垫。示例一:给定一个环,当两个箭头同时逆时针加1时,它们的相对距离不会发生变化(在这个例子中,即维持4个点的相对距离)。给定同样的环,若在每次更新时,蓝色箭头逆时针加2,而红色箭头逆时针加1,那么它们的相对距离就会在本次更新结束后缩短1,因此可以推导出,经过若干次更新后,红蓝箭头将会重合在同一个位置(即它们的相对距离为0)示例二:给定一个没有环的单向链表,如果每次更新时,蓝色箭头向右加2而红色箭头向右加1,则在任意一个时刻都有:蓝色箭头走过的总步长为红

2021-02-28 17:29:19 1041 2

原创 KMP字符串匹配算法笔记

定义偏移(shift)为:匹配的的字符串位置前存在的字符数给定一个模式PPP,定义:σ(x)=argmax⁡k{k∣Pk⊐x}\sigma(x)=arg\max_{k} \{k \mid P_k \sqsupset x \}σ(x)=argkmax​{k∣Pk​⊐x}π[q]=argmax⁡k{k∣k<q,Pk⊐Pq}\pi[q]=arg\max_{k} \{k \mid k<q, P_k \sqsupset P_{q}\}π[q]=argkmax​{k∣k<

2021-02-21 16:04:03 178

原创 纯公式版RNN前向过程

普通RNN (Recurrent Neural Network)输入: xtx_txt​循环层: ht=f(Wxhxt+Whhht−1+bh)h_{t}=f\left(W_{x h} x_{t}+W_{h h} h_{t-1}+b_{h}\right)ht​=f(Wxh​xt​+Whh​ht−1​+bh​)输出: yt=g(Woht+bo)y_{t}=g\left(W_{\mathrm{o}} h_{t}+b_{\mathrm{o}}\right)y

2020-09-14 19:38:22 341

原创 0-1背包问题(0-1 knapsack problem)c++实现

问题描述有n个物品,它们有各自的重量和价值,现有给定最大载重的背包,如何让背包里装入的物品具有最大的价值总和?比如:基本原理定义数组A[0…n][0…maxWeight]其中,n表示商品的总数,maxWeight表示背包的最大载重量。用A[i][w]的含义为包含前i件商品且最大载重为w时的子问题的最优方案的总价值。只需要讨论当前商品i是否可能在当前子问题的最优方案中便可以得到以下递推式:若 weigth[i] > w, 即当前商品i太重了,故不可能出现在当前子问题的最优方案里,因此

2020-08-30 22:54:52 955

原创 二叉搜索树(Binary Search Trees)《算法导论》笔记

文章目录12.1 什么是二叉搜索树12.2 查询二叉搜索树查找最大关键字元素和最小关键字元素后继与前驱12.1 什么是二叉搜索树二叉搜索树是以一颗二叉树为原型加上某些约束而创建的一颗树,如下图所示:每个节点除了key和卫星数据外,还包含属性left、right、p,它们分别指向左子结点、右子结点、父结点。如果某个结点的子结点或者父结点不存在,则将相应的属性的值设为NIL。根结点(从上往下数第一个结点)是树中唯一的父指针为NIL的结点。二叉搜索树中的key值必须满足以下约束:设x是二叉搜索树中的某个

2020-08-26 23:31:00 1439

空空如也

空空如也

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

TA关注的人

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