自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 算法设计 邮票问题

算法设计 邮票问题1. 问题描述设有n种不同面值a1, a2,…, an的邮票,规定每封信最多贴m张邮票。对于给定的m,n,求出最大的邮资连续区间。例如,给定n=3,m=3,邮票面值分别为2, 3, 5,则最大的邮资连续区间为[2,13]。2. 具体要求Input输入的第一行是一个正整数n,表示测试例个数。接下来几行是n个测试例的数据,每个测试例的数据由两行组成,其中第一行含两个正整数n和m (1<=n, m<=10),表示有n种邮票,每封信最多贴m张邮票;第二行含n个正整数,表示n种

2022-01-14 14:28:26 841

原创 算法设计 寻宝问题

算法设计 寻宝问题1. 问题描述对于某个m*n的字符串数组,相当于一个m行n列的平面形状的方格。里面S表示起点,W表示障碍,B表示可走(但是不一定可以通),X表示出口。对于起点S,有8个方向可以走,当然前提是在没有障碍的情况之下,其中可以分为单步走(on foot)和跳步走(by jump)两种情况,从起点S开始追寻最短的出口路径count2。2. 具体要求Input输入的第一行是一个整数n (0<=n<=20),表示测试用例的数量。下面的行是n个测试用例的数据。每个测试用例的第一行

2022-01-14 14:24:22 1388 3

原创 算法设计 加油问题

算法设计 加油问题1. 问题描述一个旅行家想驾驶汽车从城市A到城市B(设出发时油箱是空的)。给定两个城市之间的距离dis、汽车油箱的容量c、每升汽油能行驶的距离d、沿途油站数n、油站i离出发点的距离d[i]以及该站每升汽油的价格p[i],i=1,2,…,n。设d[1]=0<d[2]<…<d[n]。要花最少的油费从城市A到城市B,在每个加油站应加多少油,最少花费为多少?2. 具体要求Input输入的第一行是一个正整数k,表示测试例个数。接下来几行是k个测试例的数据,每个测试例的数据

2022-01-14 14:16:24 1192

原创 算法设计 凸多边形的三角剖分

算法设计 凸多边形的三角剖分1. 问题描述设P是一个有n个顶点的凸多边形,P中的弦是P中连接两个非相邻顶点的线段。用P中的n-3条弦将P剖分成n-2个三角形(如下图所示)。使得n-3弦的长度之和最小的三角剖分称为最优三角剖分。2. 具体要求输入:输入的第一行是一个正整数m,表示测试例个数,接下来几行是m个测试例的数据,每个测试例的数据由两行组成,第一行含一个正整数n (n<=500),表示凸多边形的顶点个数;第二行含2n个实数x1 , y1 , x2 , y2 , …xn , yn ,按顺时针

2022-01-14 14:11:16 886 2

原创 算法设计 最长递增子序列问题

算法设计 最长递增子序列问题1. 问题描述求一个由n个整数组成的整数序列的最长递增子序列。一个整数序列的递增子序列可以是序列中非连续的数按照原序列顺序排列而成的。 最长递增子序列是其递增子序列中长度最长的。2. 具体要求输入:输入的第一行是一个正整数n,表示测试例个数。接下来几行是n个测试例的数据,每个测试例的数据由两行组成,其中第一行为一个正整数k (k<=500),表示整数序列的长度,第二行给出整数序列,整数之间用一个空格隔开。(设给出的每个整数序列的最长递增子序列都是唯一的。)输出:对

2022-01-14 14:05:22 503

原创 算法设计 L型组件填图问题

算法设计 L型组件填图问题1. 问题描述设B是一个n×n棋盘,n=2k,(k=1,2,3,…)。用分治法设计一个算法,使得:用若干个L型条块可以覆盖住B的除一个特殊方格外的所有方格。其中,一个L型条块可以覆盖3个方格。且任意两个L型条块不能重叠覆盖棋盘。例如:如果n=2,则存在4个方格,其中,除一个方格外,其余3个方格可被一L型条块覆盖;当n=4时,则存在16个方格,其中,除一个方格外,其余15个方格被5个L型条块覆盖。2. 具体要求输入一个正整数n,表示棋盘的大小是nn的。输出一个被L型条块覆盖

2022-01-14 14:01:33 863

原创 算法设计 格雷码问题

算法设计 格雷码问题1. 问题描述对于给定的正整数n,格雷码为满足如下条件的一个编码序列:(1) 序列由2n个编码组成,每个编码都是长度为n的二进制位串。(2) 序列中无相同的编码。(3) 序列中位置相邻的两个编码恰有一位不同。例如:n=2时的格雷码为:{00, 01, 11, 10}。设计求格雷码的递归算法并实现。2. 具体要求输入的第一行是一个正整数m,表示测试例个数。接下来几行是m个测试例的数据,每个测试例的输入数据由一行组成,用一个正整数n (n<=20),表示格雷码的位数。

2022-01-14 13:56:00 415

原创 网络安全 基于scrapy框架与selenium、openpyxl库爬取国外各国家疫情统计汇总信息

网络安全 基于scrapy框架与selenium、openpyxl库爬取国外各国家疫情统计汇总信息数据来源https://voice.baidu.com/act/newpneumonia/newpneumonia/思路由于目标页面中的数据是动态加载出来的,所以直接发起请求得到的响应是不包含任何有用数据的,所以需要使用selenium的浏览器驱动器进行请求发送并获得包含数据的响应。同时继续观察页面发现,初始加载的页面只包含前面一部分数据,剩余数据需要手动点击“展开全部”才能加载全部数据,所以还需要使用

2021-07-17 13:52:31 344 2

原创 人工智能 遗传算法

人工智能 遗传算法题目用遗传算法求解函数20 + (x ^ 2) + (y ^ 2) - 10 * (cos(2 * π * x) + cos(2 * π * y)) (-5 < x, y <5)的最小值思路分析问题,确定了至少需要两个类,即种群(Group)与个体(Individual)。同时为了稍微提高一点泛用性,还增加了一个函数(Function)类存放要求解的函数的相关信息。class Group: def __init__(self, group_size, m

2021-07-17 13:36:19 1089

原创 操作系统 请求分页式存储管理(FIFO、LRU)

操作系统 请求分页式存储管理实验要求通过编写分页式存储管理的模拟程序,加深对页式存储管理方式的理解,熟悉逻辑地址到物理地址的转换过程,掌握虚拟存储管理中的页面调度算法,认识分页式虚拟存储系统中缺页中断的处理过程。实验内容设计一个分页式虚拟存储系统,用程序模拟实现,假设页面大小为1K,每个进程分配三个块。页面调度分别采用FIFO调度算法和LRU算法(堆栈法)。(选中页面直接交换。)假设当前作业的页表如下:假设逻辑指令格式为:操作符 页号1 页内地址1 页号2 页内地址2例如

2021-07-16 14:09:34 6542

原创 操作系统 动态分区存储管理(循环首次适应算法、最坏适应算法)

操作系统 动态分区存储管理实验要求通过编写动态分区存储管理的模拟程序,加深对操作系统存储管理功能中的动态分区管理方式、空闲分区表等相应知识的理解。实验内容实现动态分区存储管理方式下存储空间的分配和去配。循环首次适应算法:每次都从上一次分配的空闲区继续循环遍历所有的空闲区。若再次回到上一次的位置,就代表没有可用的空闲区。最坏适应算法:每次都寻找最大的空闲区进行分配,如果最大的空闲区都不够分配那么就没有可分配的空闲区。当进程移出空闲区后需要进行空闲区的合并。将相邻的空闲区合并成一个分区

2021-07-16 13:55:40 4794

原创 操作系统 银行家算法

操作系统 银行家算法实验要求模拟银行家算法,用银行家算法实现资源分配实验内容已知进程{P0,P1,P2,P3,P4},有三类系统资源A、B、C的数量分别为10、5、7,在T0时刻的资源分配情况如下图所示:若进程P1请求资源,发出请求向量Request1(1,0,2),编写程序用银行家算法判断系统能否将资源分配给它若进程P2提出请求Request(0,1,0),用银行家算法程序验证系统能否将资源分配给它首先判断进程请求的资源数是否超过事先提交的最大值,如果超过,则不予分配。如果当前资源不足

2021-07-16 13:46:08 813

原创 操作系统 轮转调度 优先级调度

操作系统 轮转调度 优先级调度实验要求多道系统中,必须按照某种策略决定选取哪些进程占用处理器。本实验模拟实现进程调度,进一步加深对低级调度算法的理解。实验内容选择某种调度算法,设计一个实现进程调度的程序轮转调度首先明确,当一个进程的时间片结束时,另一个进程刚好到达,这时新到达的进程优先。当有进程到达时,将其加入到就绪队列,等待正在执行的进程结束后,调用就绪队列中的第一个进程即可。优先级调度每次将到达的队列与就绪队列中的第一个进行比较,如果新到达的进程优先级高,则将新到达的进程加入到

2021-07-16 13:37:38 684

原创 编译原理 波兰式和四元式及计算

编译原理 波兰式和四元式及计算实验目的将非后缀式用来表示的算术表达式转换为用逆波兰式来表示的算术表达式,并计算用逆波兰式来表示的算术表达式的值。实验环境Microsoft Visual Studio 2019 Community思路转换:首先将‘#’压入栈中,依次读取输入字符串的每一个字符,如果遇到数字则继续读取下一个字符,如果还是数字则进行拼凑,直到读取到的不是数字,表明一个运算数已经读取完毕,将其加入到队列中。如果读取到的是运算符,就比较当前运算符与栈顶运算符之间的优先关系,如果栈顶运算符有

2021-07-14 22:54:56 1446

原创 编译原理 词法分析 算符优先分析法

编译原理 词法分析 算符优先分析法实验目的加深对语法分析器工作工程的理解,加强对算符优先分析法实现语法分析程序的掌握;能够采用一种编程语言实现简单的语法分析程序;能够使用自己辨析的分析程序对简单的程序段进行语法翻译。实验环境Microsoft Visual Studio 2019 Community思路首先从文件中读取产生式,并进行分割,将包含“|”的产生式分割成单独的一条产生式。然后根据产生式求Vt和Vn。先获取每条产生式左侧的字符,这些就是所有的Vn,然后在每条产生式右侧中寻找非Vn的字符

2021-07-14 22:45:22 968

原创 编译原理 语法分析---(2)LL(1)分析法

编译原理 语法分析—(2)LL(1)分析法实验目的根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对预测分析LL(1)分析法的理解。实验环境Microsoft Visual Studio 2019 Community思路首先将#与开始符压入栈中,然后依次读取字符串中的字符,并将栈顶元素弹出。如果栈顶元素是终结符,那么就将栈顶元素与字符进行比较,如果不同,则认为出错;如果相同,继续判断,如果两者都是#,则分析成功并结束;如果不是#,则认为匹配成功。

2021-07-14 22:36:07 2358 5

原创 编译原理 语法分析—(1)递归下降分析法

编译原理 语法分析—(1)递归下降分析法实验目的根据某一文法编制调试递归下降分析程序,以便对任意输入的符号串进行 分析。本次实验的目的主要是加深对递归下降分析法的理解。实验环境Microsoft Visual Studio 2019 Community思路为每一个产生式编写一个函数。按照产生式,如果是终结符则直接匹配输入的字符与要求的终结符是否匹配;若是非终结符,调用非终结符对应的函数,传入字符串与开始匹配的位置作为参数。其中任意一步发现不符合语法规则,就认为该字符串有错误。当递归全部终结都没发

2021-07-14 22:21:55 1860

原创 编译原理 词法分析 DFA 确定的有限自动机

编译原理 词法分析 DFA实验目的通过本次实验,加深对DFA及其识别的语言的理解,学习对一般的DFA的表达方法与编程实现方法。实验环境Microsoft Visual Studio 2019 Community思路(1)DFA的输入:分别输入DFA的“字符集”、“状态集”、“开始状态”、“接受状态集”、“状态转换表”等内容,并保存在设定的变量中。(2)DFA的存储与读写:将上述DFA的五元组保存在一个文本文件中,扩展名指定为.dfa。请自行设计DFA文件的存储格式,并说明其含义。能将保存在

2021-07-14 22:04:47 675

原创 编译原理 词法分析

编译原理 词法分析实验目的:通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理 解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法 分析方法。 编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词, 即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的 内部编码及单词符号自身值。实验环境:Microsoft Visual Studio 2019 Community思路:首先忽略空格读取第一个字符,判断字符的类型:如果是下划线,则该单

2021-07-14 21:53:24 862

原创 数据结构 单链表 C++模板

数据结构 单链表 C++模板#pragma once#include<iostream>using namespace std;template<class C>class LinkNode{ C data; LinkNode* next;public: LinkNode(); LinkNode(const C& data); void setData(const C& data) { this->data = data; }

2021-07-14 21:31:58 64

原创 数据结构 排序(直接插入排序、起泡(冒泡)排序、简单选择排序、快速排序、堆排序、基数排序)

这是目录直接插入排序起泡排序(冒泡排序)简单选择排序快速排序堆排序基数排序测试需要用到的结构的定义template<typename KeyType, typename InfoType>struct RedType{ KeyType key; InfoType otherinfo;};enum Status { ERROR = 0, OK = 1 };template<typename ElemType>struct SqList{ ElemType d

2021-01-29 21:50:29 1172 1

原创 数据结构 顺序表(泛型编程)

顺序表虽然之前写过顺序表,但是没用模板所以很不方便,于是这次补一个顺序表的模板,写得比较仓促也比较简单,虽然没有注释但应该不难懂#pragma once#include <iostream>#define MAX_LIST_SIZE 20using namespace std;enum Status { ERROR = 0, OK = 1 };template<typename ElemType>struct SqList{ ElemType data[MA

2021-01-29 21:30:54 160

原创 数据结构 图 深度优先遍历(DFS) 广度优先遍历(BFS)

图的邻接表表示法看这里首先定义必要的辅助数组和函数bool visited[MAX_VERTEX_NUM];//标志是否访问过template<typename VertexType, typename InfoType>int firstAdjVex(ALGraph<VertexType, InfoType>ALG, int vIndex)//寻找第一个邻接点,未找到返回-1{ if (vIndex < 0 || vIndex > ALG.vexnum -

2021-01-29 21:24:55 384

原创 数据结构 图 邻接表表示法

图 邻接表表示法图的邻接矩阵表示法看这里基本结构:template<typename InfoType>struct ArcNode{ int adjvex; ArcNode* nextarc; InfoType* info;};template<typename VertexType, typename InfoType>struct VNode{ VertexType data; ArcNode<InfoType>* firstarc;

2021-01-29 21:08:23 531

原创 数据结构 最小生成树Prim算法 最短路径Dijkstra算法 最短路径Floyd算法

图的邻接矩阵存储看这里使用的图为:最小生成树Prim算法首先标记第一个点已经确定,然后计算出第一个点到其余各个未确定点的权值,并修改邻接点为第一个点之后每一步都找到上一步更新后的权值中最小的那个点,确定该点并计算出该点到其余各个未确定点的权值,若比原来的权值小则更新权值与邻接点,否则保持原来的权值和邻接点每一步确定一个点,直到所有的点都被确定则结束需要定义新的结构:template<typename VertexType, typename VRType>struct Cl

2021-01-29 20:41:15 294

原创 数据结构 图 邻接矩阵表示法

图 邻接矩阵表示法基本结构:enum GraphKind { DG, DN, UDG, UDN };template<typename VRType, typename InfoType>struct ArcCell{ VRType adj; InfoType* info;};template<typename VRType, typename InfoType>using AdjMatrix = ArcCell<VRType, InfoType>

2021-01-29 20:25:16 1743

原创 数据结构 Huffman树(霍夫曼树、哈夫曼树)

Huffman树给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。结构定义:template<typename ElemType>struct HuffmanNode{ ElemType data; int weight; int num; int parent, lchild, rchild;};template&lt

2021-01-29 19:58:31 1189

原创 数据结构 线索二叉树

线索二叉树将指向空的指针加以利用,空左子树指针指向该节点直接前驱,空右子树指针指向该节点直接后继,通过线索可以加快遍历速度结构定义:enum PointerTag { Link = 0, Thread = 1 };template <typename ElemType>struct BiThrNode{ ElemType data; BiThrNode* lchild, * rchild; PointerTag LTag, RTag;};template<type

2021-01-29 19:27:36 83

原创 数据结构 二叉树 链式存储结构

二叉树 链式存储结构结构定义:template<typename ElemType>struct BiNode{ ElemType data; struct BiNode* lchild, * rchild;};template<typename ElemType>using BiTree = BiNode<ElemType>*;基本操作:遍历:二叉树最基本也最重要的操作,分成了前序遍历、中序遍历、后序遍历、层次遍历四种前序遍历递归算法:首

2021-01-28 21:38:08 639

原创 数据结构 循环队列及应用(泛型编程)

循环队列特点:先进先出(FIFO)队头队尾指针只向后移动入队时队尾指针后移,出队时队头指针后移当队头指针与队尾指针相等时即为队空当(Q.rear + 1) % MAX_Q_SIZE == Q.front时即为队满定义:template<typename QElemType>struct SqQueue{ QElemType qet[MAX_Q_SIZE]; int front, rear;};基本操作:template<typename QElemTyp

2021-01-28 21:04:16 595 1

原创 数据结构 栈的应用(数制转换、括号匹配、行编辑程序、表达式求值、迷宫求解)

栈的应用因为原本写栈的时候并没有用泛型编程,做到迷宫的时候必须用泛型,所以临时改成泛型,导致有点乱,这些应用很多可以不必用泛型的地方也直接顺势改成了泛型栈的实现:https://blog.csdn.net/oowadanoko/article/details/109429297这是目录数制转换括号匹配行编辑程序表达式求值迷宫求解数制转换将十进制数与目标进制取余数,若结果大于10,还需将其转换为对应的字母(例:10转化为A,11转化为B),这样就可以转化为进制大于10的数,然后将结果都以字符形

2020-11-01 17:27:41 491 1

原创 数据结构 顺序栈(泛型编程)

顺序栈及其基本操作特点:1、 后进先出(LIFO)2、 栈底指针始终指向0,栈顶指针移动,且始终指向最后一个元素的后一个位置3、 当栈顶指针与栈底指针相等,都指向0时表示栈空,当栈顶指针等于最大元素个数时表示栈满在编写过程中出现 LNK2019 链接器错误经过寻找原因了解到:C++模板不支持分离编译,只要将声明与实现都写在.h文件中就可以通过参考资料:https://www.cnblogs.com/qlwy/archive/2012/03/21/2410045.html定义:#def

2020-11-01 16:37:51 188

原创 数据结构 单链表

上传一些自己数据结构瞎写的作业实验目的:掌握程序设计的基本方法,要求能够对C/C++实现简单的算法设计熟练掌握指针的应用熟练掌握线性表的基本运算在顺序存储结构和链式存储结构上的实现掌握顺序表以及线性链表的基本操作及其实现能使用线性表来解决实际中遇到的问题实验要求:单链表:完成初始化、插入、删除、获取、查找、显示、合并等功能要点:操作时不需要移动元素,只需要移动指针插入时先将新节点的指针指向下一个节点,再将前驱节点的指针指向新节点删除时可以用一个指针指向被删除节点,方便释放内

2020-10-18 15:52:54 99

原创 数据结构 顺序表

上传一些自己瞎写的数据结构作业实验目的:掌握程序设计的基本方法,要求能够对C/C++实现简单的算法设计熟练掌握指针的应用熟练掌握线性表的基本运算在顺序存储结构和链式存储结构上的实现掌握顺序表以及线性链表的基本操作及其实现能使用线性表来解决实际中遇到的问题实验要求:顺序表:完成初始化、插入、删除等基本功能要点:插入时需将插入位置后的元素全部向后移动一个位置删除时需将删除位置后的全部元素向前移动一个位置SqList.h#pragma once#include<ios

2020-10-18 15:38:33 245

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除