回溯算法
基本理论
回溯算法和递归是相辅相成的
回溯法是一种纯暴力的算法,它并不是高效算法.
回溯问题都可以抽象成树形结构.
回溯法可以解决哪些问题?
组合问题: 在一组数据中找到大小为2的组合.
切割问题: 给一个字符串,有几种切割方式.
子集问题
排列问题: 排列强调顺序,组合不强调问题
棋盘问题: N皇后
回溯法的模板
递归函数一般没有返回值.
递归函数的命名一般叫backtracking(参数)
需要有终止条件,在终止条件内收集结果.
123456789101112void basetracking(参数){ if(终止条件){ 收集结果 return; } for(集合元素){ 处理节点; 递归函数; 回溯操作; }}
力扣22题, 括号生成
组合问题回溯问题可以通过递归的方式控制for循环的嵌套层数
剪枝操作for(集合元素) 通过某种判断条件减少遍历次数
动态规划
动态规划动态规划五步
DP数组以及下标的含义
递推公式
DP数组如何初始化
遍历顺序(背包问题中先遍历背包还是先遍历物品?)
打印数组
入门
爬楼梯、斐波那契
背包问题
打家劫舍
股票问题
子序列问题
数据结构———图
图的存储结构邻接矩阵邻接链表比较图的基本操作增加边增加节点
删除节点删除边
遍历图中的节点广度遍历BFS深度遍历DFSDijkstra算法Floyd算法
Unity ASE插件问题记录
Unity可视化Shader工具ASE介绍——5、ASE快捷键和常用节点介绍
3D数学基础——三维旋转
三维旋转的表示方式
矩阵
欧拉角
四元数
轴角
指数映射
矩阵表示旋转欧拉角表示旋转三维旋转表示方式之间的转换矩阵转欧拉欧拉转矩阵矩阵转四元数四元数转矩阵欧拉转四元数四元数转欧拉
3D数学基础——概念收集与问题记录
概念
秩
满秩
矢量叉积 矢量叉积只能在三维中使用
矢量点积
三重积(Triple Product)
正交矩阵 当且仅当矩阵及其转置的乘积是单位矩阵时,方形矩阵M是正交的.
\bold{M}是正交矩阵 \iff \bold{M}\bold{M}^{T} = \bold{I}由逆矩阵的性质可知,正交矩阵的转置矩阵和逆矩阵是等价的
\bold{M}是正交矩阵 \iff \bold{M}^{T} = \bold{M}^{-1}该条性质十分重要,因为计算逆矩阵是一个相对昂贵的操作,如果已知一个矩阵是正交的,那么直接使用转置矩阵得到逆矩阵.
转置矩阵
子矩阵行列式Minor 假设$\mathbf{M}$是具有r行c列的矩阵.考虑通过从M中删除行i和列j而获得的矩阵.这个矩阵显然具有r-1行和c-1列.这个子矩阵Submatrix的行列式表示为$\mathit{M}^$,被称为$\mathbf{M}$的子矩阵行列式
余子式Cofactor 给定行和列方形矩阵$\mathbf{M}$的余子式与相应的子矩阵行列式相同,但子矩阵行列式会交替变负 $\mathit{C}^ = (-1)^{i+j ...
3D数学基础——矩阵
旋转在二维中的旋转围绕主轴的三维旋转围绕任意轴的三维旋转
Balatro
小丑牌使用love2d游戏引擎开发,开发语言是lua.笔者之前从未接触过lua,在上手阅读前还是有一些开发语言上的语法障碍需要克服一下.看起来小丑牌底层使用到了一个名叫SNKRX游戏的底层框架.
环境安装
love2d游戏引擎地址
lua地址
运行游戏首先在~/.zshrc中添加以下文本12# alias to lovealias love="/Applications/love.app/Contents/MacOS/love"
退出zshrc,执行1source ~/.zshrc
来到小丑牌的根目录,执行:1love .
程序入口拿到小丑牌源码,程序的入口在main.lua中,首先看到的是一串require语句,该语句后面跟的内容就是脚本的路径,且会执行该路径下的脚本.就拿game.lua脚本中的Game类举例,首先是main.lua的require语句中请求模块globals,lua找到并执行globals.lua脚本,在该脚本中创建了一个Game对象,在Game对象的构造方法中创建了一个Game的单例.执行完require "globals&quo ...
在Blender中导出一个可以被Unity使用的圆
起因是2025GGJ的主题是Bubble,想在Unity中做一个吹泡泡的游戏,需要用一个圆来表现泡泡波动的状态.遂打开Blender准备导出一个圆片到Unity中.本文记录为了导出一个能在Unity中正确使用的圆,用到的Blender中的功能和技巧.
Blender中的坐标系Blender中的坐标系是右手坐标系,Unity中的坐标系是左手坐标系,判断左右手坐标系通过手性判断:
可以看下面两张图,展示了同一个模型在Unity和Blender中坐标轴的关系,两种坐标系下x轴的正方向反过来了,其他两个轴在之后x轴方向翻转的情况下是一致的.两个图中的坐标系都是Local坐标系.
Blender中常用的快捷键Shift + A 在场景中快速添加一些组件Shift + Z 切换Viewport类型 比如是线框、着色等鼠标右键 取消之前触发的命令G 移动选中的物体
在Blender中制作一个圆形的实心平面Shift + A 创建一个Circle的Mesh,这是发现即便是在着色视口下,Circle仍然只有一个线框,这是因为这些顶点没有构成一个个的三角形,需要设置这个Circle的填充属性,当你创建 ...
飞书协同工作流
Jenkins安装在Mac上,使用Homebrew命令安装Jenkins1brew install jenkins-lts安装成功后使用下面命令启动Jenkins服务器1brew services start jenkins-lts在本地
其他常用命令12brew services restart jenkins-lts // 重启Jenkinsbrew upgrade jenkins-lts // 升级Jenkins
Jenkins中的其他概念.
NodeAgent创建Pipeline类型的Work无法看到workspace
通过新建一个Node的方式,并在pipeline流水线中制定,
遇到的问题使用homebrew安装了java,在终端中运行Java提示The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.原因可能是使用homebrew安装的java没有jvm, ...