多源bfs
多源bfs&最小树0.证明
归纳法,开始为0,不用证明
去除对头的第一个元素x,可以加入3个x+1的元素,最多有两端
两个特性,一般是队列,前面是x,后面是x+1
默认开始的元素是最小值,喝dij的使用优先队列的最小值一样.
入队就是最小值的
1.bfs1.1矩阵距离
大致意识就是求每个位置到1的最短距离
这个就是求最短路,求每个点到一堆起点的距离,建立一个虚拟起点,让1 作为起点开始寻找,然后使用虚拟起点,连接所有的 1
思路:先把所有是1的位置加入到queue里面,距离是0
重点是找到放入所有的值,还有一个就是进行更新,tt=-1
总体思路如下
使用1作为开始的点,把所有的1进行插入到队列
之后就是常规bfs,进行pop
然后第二阶段就是搜索周围的元素,找到符合的元素,二姐没有被使用(没有被使用就是距离为-1),使用的直接continue
然后进行更新,更新之后在把他插入到队列里面,
2.魔棒
pa1
1.1单步执行
单步执行的功能十分简单, 而且框架代码中已经给出了模拟CPU执行方式的函数, 你只要使用相应的参数去调用它就可以了. 如果你仍然不知道要怎么做, RTFSC
我们从源代码可以看到这个,通过查看c(继续执行发现)他条用了一个exec函数,我们的目的,就是通过求职,得到那个数字是多少,然后调用exec这个函数,如何得到数字,使用strtok进行得到,之后得到的是char,转换需要使用atoi来进行使用
代码如下:
1
打印寄存器
打印寄存器就更简单了. 不过既然寄存器的结构是ISA相关的, 我们希望能为简易调试器屏蔽ISA的差异. 框架代码已经为大家准备了如下的API:
12// nemu/src/isa/$ISA/reg.cvoid isa_reg_display(void);
执行info r之后, 就调用isa_reg_display(), 在里面直接通过printf()输出所有寄存器的值即可. 如果你从来没有使用过printf(), 请RTFM或者STFW. 如果你不知道要输出什么, 你可以参考GDB中的输出
通过这个可以知道,我们需要使用打印寄存器 ...
word技巧
word操作技巧3.1项目
带圈字符在拼音那里
然后段落可以设置行间距
选择之后可以设置字体,字体又是可以分为大小,还有样式
项目符号就是指那个三角形,编号是123,直接右击都是可以使用
最后的是使用对齐方式,使用居中对齐
还有一件事,可以使用格式刷,对已经设置好样式的文本进行复制粘贴。不需要自己手动设置格式
3.2项目
这个主要是学习表格的使用
前面的格式样式设置就不提了
然后是插入表格
插入之后
选择之后表单有对齐的功能,使用对齐
还有合并单元格
.进行设置行高还有列宽
之后就是wps的功能,使用公式进行求和还有求级,product(left),还有sum
之后设置格式,设置的格式有,人民币大写,还有一些其他
设置表格变宽,使用全选进行设置,设置表格样式,选择线性颜色,还有粗细度
3.3项目
目前,难度比较大的一个。
学习这个就是药了解到文本框的作用。使用普通的文本没有办法
文本框进行插入,插入之后可以对他进行字体设置吗,还有字体效果,同事去除文本边框
接下来就是进行图片插入,插入之后药把文字进行浮动与上方,不然不好移动图片
之后就是手指下沉
还有设置文字的行间距这些,就 ...
github的action
action 操作1.workflow是什么
假设你开发的java软件又bug,用户提交问题到issue,代码人员进行修复,修复完成,之后进行pull request,然后就进行合并,合并之后旧的进行测试才能发布,这就是一个流程
2.名称解释event
就是我触发的条件(pull request)
workflow就是一系列自动化流程
常用的cicd
3.为什么使用action因为你 不想配置环境变量
3.demo3.1yaml教程
使用tab就是一个对象,使用kv来记录纸
使用过 list记录多个,那就需要-
3.2demo简介
name是可选
on就是event,单位需要出发的事件
jobs,就是执行的事件
到这一步就是进行代码检查,使用github编译好的checkout
每一个-,代表一个list,就代表一次操作
uses,时使用别人的action,run是自己执行linux命令
4.cicd在哪里执行在github的服务器上
jobs是并行的,如果publish需要build,那就要使用关键字,need
5.总结首先 on 是触发条件(pu ...
元编程
元编程1.概念解释就相当云java构建spring项目,进行build.使用规则来定义如何使用这些文件来的到,jar包
cmake 比make跟smart,cmake查找本地的哭,make只会自己寻找文件
使用make来进行build固件,make寻找makefile来进行make
上面是需按照那两个文件,然后接下来才是进行编译代码
2.ci持续集成自动进行构建,每一个event出发一个action,自动调用
例如本文的网站,当我写好一个markdwon文件,然后使用push操作,github就会进行ci,并且生成网页
3.测速单元测试,值测试某一个功能
集成测试,测试代码交互之间是不是又问题
git控制
git操作1.模型
模型树。对于文件夹,叫做tree,对于文件叫做blob,根目录是root
git工作流
使用分支branch,还有merge合并
元数据:作者,message
数据模型
定义的文件为数组,tree是hash隐射,然后commit是要提交的stack
一个obejcect是一个版本,维护,使用hash进行映射
2git demo暂存区
为什么add和commit分开
因为add可能已经完成了一个新的feature,还有一些没有完成,只提交完成的就可以进行发布
也可能不想上传日志文件
git checkout 进行版本切换回退
git diff进行代码比较
可以比较不同时期某个文件的的区别
3.分支git branch cat,新建一个cat分支
可以之间checkout -b创新建新分支,然后进去
回到什么功能都没有的master分支,进行合并cat和dog分支
首先git merge cat
然后出现合并不兼容的情况(conflic)
因为那个if判断不对
最终结果
acw数论
4.数学知识4.1质数4.1.1基本算法1234567bool is_prime(int n){if(i<2)return false;for(int i=2;i<=n/;i++){if(n%i==0)return false;}return true;}
4.1.2分解质因数从小到大尝试每一个因素
123456789101112void divide(int n){ for(int i=2;i<=n;i++){ if(n%i==0){ int s=0; #求出i的次数 while(n%i==0){ n/=s; i++; } } }}
优化版本
n中至多质保函一个最多大于根号n的因子
1234567891011121314void divide(int n){ for(int i=2;i<=n/i;i++){ if(n%i==0){ int s=0; #求出i的次数 whil ...
bilibili视频下载
1.哔哩哔哩下载发现一个好用的工具,直接输入连接,就可以批量下载哔哩哔哩视频
推荐大家star
leiurayer/downkyi: 哔哩下载姬downkyi,B站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等)。 (github.com)
command教程
命令行教程工作流,终端复用,dotfile配置,还有远程服务器
2.工作流ctrl+c是打断程序
ctrl+z是暂停
ctrl+\是结束程序
使用&表示程序后台执行
使用jobs可以查看当前执行的进程状态,
使用bg %1,回复倍暂停的jobs
产生式挂起进程使用nohup
2.tmux一般使用screen,不过也学习一下
三大核心,session,windows,panel
会话
- 每个会话都是一个独立的工作区,其中包含一个或多个窗口
tmux 开始一个新的会话
tmux new -s NAME 以指定名称开始一个新的会话
tmux ls 列出当前所有会话
在 tmux 中输入 <C-b> d ,将当前会话分离
tmux a 重新连接最后一个会话。您也可以通过 -t 来指定具体的会话
windows==tab(浏览器的窗口)
会话
- 每个会话都是一个独立的工作区,其中包含一个或多个窗口
tmux 开始一个新的会话
tmux new -s NAME 以指定名称开始一个新的会话
tmux ls 列出当前所有会话
在 tmux ...