保研专业知识复习
机器学习通用近似定理定理:一个包含足够多隐层神经元的多层前馈网络,能以任意精度逼近任意的连续函数。 这个定理的两个关键点是: 1)神经网络是找到“近似的”结果,而非“精确的”函数。我们可以通过增加隐层神经元的个数来提升精度; 2) 被近似的函数必须是连续的。 也就是说,不管给定一个函数$f(x)$多复杂,通过神经网络都能找出任意精度的近似结果。即一个单隐层的神经网络可以近似预估大部分函数。理论是成
保研机试复习
洛谷P2285 –[HNOI2004] 打鼹鼠题目描述鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的。根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个 $n \times n$ 的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气。你可以控制一个机器人来打鼹鼠,如果 $i$ 时刻鼹鼠在某个网格中出现,而机器人也处于同一网格的话,那么这个鼹鼠就会被机器人打死。而机器
图论
图论 在计算最短路时,Dijkstra算法不能处理带有负权的图,bellman_ford和spfa可以处理带有负权边的图,spfa是对bellman_ford的优化。 Dijkstra算法在Dijkstra算法中,稠密图使用邻接矩阵,稀疏图使用邻接表 朴素Dijkstra算法在使用Dijkstra算法时,如果有向图中出现重边或者是有环的话,只采用代价最小的边 1234567891011121314
二叉树学习
先序创建二叉树算法思想 先序创建二叉树采用递归的方式实现,先传入二叉树的根节点指针的地址,然后依次递归读入二叉树节点,当读入的是‘@’时,将递归得到的根节点赋予NULL,当读入的不为‘@’时,将该值赋值到根节点值,并依此递归左儿子和右儿子。 关键问题1:为什么要传入根节点的地址? 因为我们已知的是根节点指针,它指向malloc开辟的BiTree空间的首地址,当传入的是根节点指针而不是根节点指针的地
算法学习
排序sort函数(sort和cmp配合使用)sort函数(c++)可以对数据进行排序和自定义排序(cmp配合使用) 12345从小到大排序可以写成sort(a,a+n,less<要进行排序的数据类型>())//a是数组的首地址,a+n是数组的尾地址(也可以是结构体数组)从大到小排序可以写成sort(a,a+n,greater<要进行排序的数据类型>()) sort可以和c
misc做题记录
jarvisoj_level2_x64 checksec后发现是64位NX_ENABLE的程序,打开ida后发现就是一个简单的64位rop,题目用意应该是让我们熟悉下64位和32位rop构造的区别 在64位中,函数传参通过寄存器,所以可以在函数找到pop_rdi_ret的地址,然后就可以把str_bin_sh传入system函数中 于是exp可以这样构造 12345678910from pwn
简单做题记录
xctf babyre第一次做smc程序,看了wp学了下打patch。 打开ida启动反汇编就发现judge是全程序的关键,但是judge在开头进行了异或操作,导致反汇编不出来。于是可以用ida打patch来让ida正确反汇编函数。 如果是花指令,就可以使用edit-patch programmer将字节码改成nop跳过花指令。如果是需要编写脚本来正确反编译,可以在file-script co