A*搜索算法 A* 搜索算法简介算法流程伪代码描述注意事项A* 版k短路算法算法流程伪代码描述例题注意事项简介A* 算法是基于BFS的一种入门级启发式搜索算法,就是将BFS的队列改为基于估价的优先队列,可以快速地找到答案。算法流程伪代码描述//优先队列为小根堆WHILE 优先队列不为空 取出队头并扩展 将扩展节点以估价值+当前值为优先级入队END WHILE注意事项估价函数越接近真实值算法...
RSA算法及C++实现 RSA算法实现说明算法的数学基础C++实现数论函数以及结构体定义获取公钥及私钥加密解密说明质数p,q要自己去选取算法的数学基础首先,选取两个质数p,q,令 N=pqN = pqN=pq,L=Φ(N)=(p−1)(q−1)L = \Phi \left ( N \right ) = (p-1)(q-1)L=Φ(N)=(p−1)(q−1);选取E(0<E<L)使得gcd(E,L)=...
数据结构——Treap 数据结构——Treap简介实现节点结构节点信息更新左旋右旋插入删除查询前驱(不大于指定值的最大值)查询后驱(不小于指定值的最小值)查询第K大的值查询排名简介树堆,在数据结构中也称Treap,是指有一个随机附加域满足堆的性质的二叉搜索树,其结构相当于以随机数据插入的二叉搜索树。其基本操作的期望时间复杂度为O(logn)。相对于其他的平衡二叉搜索树,Treap的特点是实现简单,且能基本实现随机平...
字符串子串识别——KMP算法与AC自动机 字符串子串识别——KMP算法与AC自动机KMP算法算法简介预处理子串KMP算法主体例题AC自动机算法简介建立失败跳转数组(其实就是在Trie中添加几条边)匹配例题实际应用KMP算法算法简介KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特–莫里斯–普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的...
计算机求定积分——自适应辛普森法 自适应辛普森法例题近似解求法——辛普森法(也叫抛物线法)例题洛谷P4526 【模板】自适应辛普森法2这道题应该不能用牛顿莱布尼兹公式求解,因为这个函数没有初等原函数。近似解求法——辛普森法(也叫抛物线法)辛普森法将定积分...
自己实现一个神经网络算法库 /* NeuralNet.cpp 轻型神经网络算法库,实现监督学习算法之一——反向传播算法 */#include <vector>#include <map>#include <cmath>#include <string>#include <cstdlib>#include <cstdio>#includ...
Windows进程通信——内存文件映射 Windows进程通信——内存文件映射系统函数CreateFileMapping()OpenFileMappingA()MapViewOfFile页属性文件读写属性实例消息生产者Share-Producer.cpp消息消费者Share-Customer.cpp系统函数CreateFileMapping()WINBASEAPI HANDLE WINAPI CreateFileMappingA(...
仿照STL实现矩阵matrix 仿照STL实现矩阵matrix#include <bits/stdc++.h>//STL的类都是放在std命名空间中namespace std{ //T必须为数值,或自定义类型但与数值具有同样的函数(包括但不限于重载运算符函数) template<class T/*,class Alloc = allocator*/> //各个STL版本的推荐allocat...
仿照STL list 仿照STL list实现insert()pop_*()push_*()erase()remove()迭代器begin()end()front()back()clear()empty()#include <bits/stdc++.h>using namespace std;template <class T>struct My_List_...
C++网络IP数据包监视 C++网络IP数据包监视实现main.cppbase.h实现main.cpp#include <stdio.h>#include <winsock2.h>#pragma comment(lib,"ws2_32.lib")#include "base.h"WSADATA wsa_data;SOCKET sniffer_socket = INVALID_SOC...
C++搜索进程列表 C++搜索进程列表首先获取当前系统快照 HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(hProcessSnap == INVALID_HANDLE_VALUE) { MessageBox("无法获取进程列表"); return; }CreateToolhelp32Snapsho...
C++计算器 计算器先上代码#include<bits/stdc++.h>using namespace std;template<typename _Type>class q_stack{ //实现一个栈 #define MAX_SIZE 1024 private: _Type m_stack[MAX_SIZE]; int m_top; public: q_...
VC++6获取屏幕以及控制台的CDC对象 VC++6获取屏幕以及控制台的CDC对象获取屏幕的CDC对象获取屏幕以及控制台的CDC对象实例获取屏幕的CDC对象CDC* GetScreenDC(){ HDC hDC = CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL); CDC* ret = new CDC(); ret->Attach(hDC); return ret;}Create...
自己动手制作植物大战僵尸简单修改器(3) 自己动手制作植物大战僵尸简单修改器3目的过程找到阳光地址获取修改阳光的指令找到自动汇编窗口找到代码注入改变阳光增量结果目的这一篇并不是制作,改变每一次捡起阳光时阳光增加量。过程找到阳光地址这是基础内容,可以上网查获取修改阳光的指令找到自动汇编窗口找到代码注入改变阳光增量将add [eax+00005560],ecx改为add [eax+00005560],100,其中1...
自定义MFC控件——浮点数编辑框 自定义MFC控件——浮点数编辑框编辑框的Number属性的不足自定义浮点数编辑框编辑框的Number属性的不足编辑框的Number属性会使得只能输入数字,而不能输入负数、浮点数。自定义浮点数编辑框首先创建一个MFC Class CnumberEdit类,基类为Cedit。接着添加WM_CHAR消息。处理程序为void CNumberEdit::OnChar(UINT nChar,...
数据结构——可持久化Trie字典树 数据结构——可持续化Trie字典树如何可持续化流程实现如何可持续化数据结构——Trie字典树可持续化,即能访问曾经的内容,最简单的办法是每次更新直接把以前的内容复制到一个新的地方。然而,这样很浪费内存,因为曾经的节点大部分没必要再复制一遍。更好的办法是每一次都额外创建被更新的节点,而不动原来的节点,并记录每一次更新所产生的新的根节点。自己画的,有点丑流程设当前版本为history...
数据结构——Trie字典树 数据结构——Trie字典树结构特点实现结构特点Trie字典树常用于判断前缀。这个数据结构中每个节点表示状态,而状态转移由串实现,即状态为节点,字符为边。这是网上找的图片。实现class Trie{ private: int tot; int ch[1024][26]; //字典树节点,第一维表示节点编号(不用0,0表示没有下一个节点),第二维表示字符,结果为转移的下一个节点...
计算机病毒——代码自解密2 计算机病毒——代码自解密2问题改进这一次实验的基本代码编写完整代码问题上一篇博客上次的程序修改了代码区,因此改变了代码段属性,那么反病毒程序可以通过判断段属性异常来查毒(不是病毒也可能会报毒)。因此我们需要换一个段来存储并运行被加密的代码。改进.一般,我们常用的段有:代码段,可读可执行不可写数据段,可读可写不可执行堆栈段,可读可写可执行因此我们可以选择堆栈段来存储运行。堆不好操...