- 博客(16)
- 收藏
- 关注
原创 洛谷 P1099 [NOIP2007 提高组] 树网的核
洛谷 P1099 [NOIP2007 提高组] 树网的核自己对于答案区第一个答案代码的理解做法:1、两次dfs求得直径2、在直径上尺取求满足长度小于等于s,且端点到直径端点最小的路径,最小值记为ans3、标记直径为访问过,dfs直径上的点,求其树枝的长度4、ans和直径上点的树枝长度取最大值,即为所求分析:1、直径有多个时,任意取一个做上述操作都可以,这个证明还不会。。。2、满足长度小于等于s,且端点到直径端点最小的路径一定是所求的路径。证明:如下示意图图,假设AB是直径,CD是一段路径,
2022-01-21 12:14:50
544
原创 图论:具有至少两个顶点的简单无向图中一定存在度相同的结点
图论:具有至少两个顶点的简单无向图中一定存在度相同的结点设有n个节点,则每个节点的度数只能取0,1,2,3,。。。,n-1,因为如果某个点的度数取n,则一定存在自环或者重边。下面分情况讨论:1、如果存在大于等于2个节点度数为0,结论显然成立2、如果仅存在1个节点度数为0,则剩余n-1个节点度数不能取n-1(否则存在自环或者重边),则由抽屉原理,n-1个节点度数在1,2,。。。,n-2这n-2个数中取,必然存在两个节点度数相等3、如果不存在度数为0的节点,则n个节点的度数在1,2,。。。,n-1这
2022-01-10 10:41:31
4882
原创 ceres Analytic Derivatives
ceres Analytic Derivativesceres是一个非线性最小二乘的库其中主要求解方式有Analytic Derivatives,AutoDerivatives & Numeric Derivatives这三种。AutoDerivatives最常用也最方便使用,Analytic Derivatives在雅各比矩阵计算上可能会快于AutoDerivatives,所以在某些地方可以使用Analytic Derivatives来加速优化过程。Analytic Derivatives需
2021-10-15 21:51:03
335
原创 Mac上vmfusion ubuntu无法复制粘贴的解决办法
Mac上vmfusion无法复制粘贴的解决办法1、如果你是刚刚在vmfusion中装好ubuntu,那么你应该需要安装vmtools,然后在主机/系统便好设置/安全性与隐私里面给一些权限2、如果你是已经安装了vmtools,但是复制粘贴还是不能用,可以试试:sudo apt-get install open-vm-tools-desktop所有的选项都选yes,安装完重启。...
2021-10-03 13:44:11
2445
1
原创 CSAPP shlab
CSAPP shlab实验要求模拟一个轻轻量级的shell,实现内置指令quit,fg,bg,jobs,或者运行指定路径下可执行文件。框架大部分已经搭建好,我们只需要编写:函数eval:读入键入的命令行,做语法解析并执行相应命令函数builtin_cmd:辨认是否为内置指令,如果是则执行函数do_bgfg:执行内置指令bg和fg函数waitfg:终端需要等待前台程序执行sigchld_handler:SIGCHLD信号处理,这是子进程管理的关键部分sigint_handler:SIGINT信
2021-08-21 09:50:05
448
原创 CSAPP perfab
CSAPP perfabPart Arotate实验,把nxn的正方形图片逆时针旋转90度,这是一个内存敏感的程序,优化的主要思路是分块(和cachelab很像)。由于图片的边长都是32的倍数,所以我们选择块大小为4,8,16,32去尝试哪一种性能更好,最终选择为16x16的块Part Bsmooth实验,这是一个计算敏感的程序,优化的主要思路是:1、去掉不必要的过程调用:可以看到,为了处理边缘点,原程序用了很多min和max判断好处就是代码简洁,坏处就是影响性能CPE。我们分别处理4个角点,
2021-08-10 19:58:14
478
原创 CSAPP cachelab
CSAPP cachelabPart A编写一个缓存的模拟器,要求从命令行读入参数,从文本文件读入内存记录,输出对于缓存的hit,miss和evict其中,当E不为1时,替换策略是LRU (least-recently used),即最久没有用过的行被替换掉。注意编程时不用考虑内存请求的数据超过一个块的界限,即我们只需要考虑组索引和标志位匹配就可以。下面的代码思想就是用一个simTime记录访问内存的时间,用来做LRU替换#include "cachelab.h"#include <get
2021-08-04 23:18:48
349
原创 CSAPP archlab PartC
CSAPP archlab PartC主要的优化点:1、在指令集中加入iaddq,这样一些常数的加减只需要一个指令,而不是先把常数放到寄存器中再加减2、使用循环展开,我是使用了8路展开。当数组长度越大时,循环展开的路数越大,效果肯定越好3、执行读写操作时数据相关的气泡mrmovq (%rsi), %r8rmmovq %r8, (%rdi)第一条指令从memory中读数到r8,第二条指令r8再写到内存中。但是第二条指令在译码时,第一条指令正在执行阶段,还没有到访存,所以不知道r8的值,因此第二
2021-07-28 11:11:01
583
原创 CSAPP练习题5.5和5.6 课后习题答案解释
CSAPP练习题5.5和5.6看到这篇文章的一定是对练习题5.5和5.6的课后习题答案有疑惑的人。铺垫我就不多说了,直接上我自己的理解吧。我认为课后习题的答案应该是没有问题的,可以这么去理解1、首先,对于5.5题的代码,CEP是5result += a[i] * xpwrxpwr = x * xpwr假设a[i] * xpwr的计算结果保存在tmp中,大部分人的疑惑肯定是a[i] * xpwr和x * xpwr计算需要5个周期,然后算完的结果tmp再加回到result中,那不就是8个周期吗。
2021-07-25 11:06:33
1842
9
原创 CSAPP attacklab
CSAPP attacklabattacklab总共有5个小实验,主要是围绕CSAPP这本书的3.10节内容展开,即缓冲区溢出攻击。缓冲区溢出攻击:调用其他过程时当前%rip会存放在运行时栈上,通过缓冲区漏洞,可以修改ret时的%rip,使其指向恶意代码处。实验的第一部分有3个小实验,主要是在ctarget上完成,代码没有任何缓冲区溢出保护:主要指每次运行ctarget,栈地址是不变的,所以code-injection(CI)十分容易进行。主要方法是利用gdb调试工具,查看运行时栈的地址,然后就可以
2021-07-15 22:50:30
557
原创 CSAPP-bomb实验
CSAPP-bomb实验纪念一下bomb实验看汇编代码感觉要注意以下几点:1、一个过程开头一般是sub sp,用来分配栈空间2、然后保存寄存器3、如果过程A中还调用了其他过程B,那么在调用前会有参数的传递;可以配合过程B的代码和过程A中的参数传递看懂寄存器的意义4、以$开头的是立即数,就是10进制数,下文中有6304464这样的数作为地址偏移量,(我一开始以为是16进制)这个地址加8就是6304472phase10000000000400ee0 <phase_1>://从地址4
2021-06-17 21:32:43
674
转载 树莓派WIFI网络设置与SSH远程连接
树莓派WIFI网络设置与SSH远程连接(ubuntu server)下面的操作针对新烧录的SD卡,需要有显示器和键盘。一般把新卡插到树莓派上,连接好键盘和显示器,然后供电,pwr指示灯会一直常亮红灯,表示供电正常;act灯会间断闪烁,表示正在从SD卡上读取文件。这样的状态表明一切正常。然后显示屏上就会有输出信息。如果装的是ubuntu server系统,初始的账号和密码都是ubuntu。登陆上之后:1、设置连接WIFI1)查询网络接口WIFI一般以w开头,一般都是wlan0ls /sys/c
2021-03-26 11:07:27
782
原创 算法导论(22.1-6)-基本图算法-有向图的通用汇点
算法导论(22.1-6)-基本图算法-有向图的通用汇点题目描述:给定图G的邻接矩阵表示,给出一个O(v)时间的算法来判断有向图G是否存在一个通用汇点。通用汇点是指入度为|V|-1且出度为0的结点。思路:首先可以证明一个有向图G如果有通用汇点,那么他仅有一个。假设有两个,则根据定义(入度为|V|-1),这两个结点必定互通的,这就违反了定义(出度为0),矛盾!然后下面这个算法尝试寻找一个可能的候选结点://i表示行,j表示列int i = 0;int j = 0;//从(0,0)开始搜索,如果当
2021-03-20 14:25:18
666
1
原创 px4与gazebo的多无人机编队仿真,offboard模式
px4下基于ros和gazebo的多无人机编队仿真,offboard模式单机的offboard仿真见https://blog.youkuaiyun.com/weixin_43409270/article/details/114585397多机仿真1、修改launch文件在/PX4-Autopilot/launch目录下,找到multi_uav_mavros_sitl.launch文件,添加无人机和配置通信端口可以直接复制文件中已有的配置文件,比如下面照片中是multi_uav_mavros_sitl.laun
2021-03-12 20:08:01
5153
17
原创 PX4下gazebo 仿真 offboard模式(ubuntu18.04)
PX4下gazebo 仿真 offboard模式(ubuntu18.04)1、ros与gazebo安装这里不多说了,上网找教程或者按照ros官网教程安装完成ros-melodic的完整版,gazebo也会自带安装好。2、px4安装这里也有官网教程https://docs.px4.io/master/en/getting_started/3、offboard control环境源码方式安装建立catkin工作空间mkdir -p ~/catkin_ws/srccd ~/catkin_wsc
2021-03-09 17:06:01
2310
2
原创 最长公共子序列(LCS)与最长递增子序列(LIS)
最长公共子序列(LCS)与最长递增子序列(LIS)最长公共子序列(LCS)问题描述:已知两个序列x1,x2,...xn{x_1,x_2,...x_n}x1,x2,...xn与y1,y2,...ym{y_1,y_2,...y_m}y1,y2,...ym,求出它们最长的公共子序列,即max{k},满足:a1<a2<...<aka_1 <a_2<...<a_ka1<a2<...<akb1<b2<...<bkb_1
2021-03-03 23:24:13
367
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人