- 博客(28)
- 收藏
- 关注
原创 二进制枚举:幼儿园买玩具
问题描述蒜厂幼儿园有n 个小朋友,每个小朋友都有自己想玩的玩具。身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买m 个玩具。已知玩具商店一共卖k种玩具,编号为1,2,3,…k,你让每个小朋友把想玩的玩具编号都写在了纸上。你希望满足尽可能多的小朋友的需求,请计算出最多能满足多少个小朋友的玩具需求。输入格式第一行,输入三个整数n,m,k(1≤n≤100,1≤m≤k≤15),中间用空格分开
2018-02-05 16:09:11
1325
原创 二进制枚举:islands打炉石传说
问题描述 islands 最近在完一款游戏“炉石传说”,又名“魔兽英雄传”。炉石传说是一款卡牌类对战的游戏。游戏是两人对战,总的来说,里面的卡牌分成两类,一类是法术牌,另一类是随从牌(所谓随从就是怪物)。 为了简化问题,现在假设随从牌的作用是召唤一个具有一定攻击力的怪物,法术牌的作用是给某个随从增加一定攻击力。随从牌和法术牌的使用都需要消耗一定的法力值。现在 islands 有10 点法力值,
2018-02-05 13:06:53
425
原创 编程练习 大整数乘法
计算两个非负整数 A,B的乘积,A,B 可能会很大。输入格式 第一行输入一个非负整数A。 第二行输入一个非负整数B。 A,B 的长度不大于500。输出格式 输出A×B 的值。样例输入43211234样例输出5332114代码如下:#include #include using namespace std;void mul
2018-01-30 20:56:48
616
原创 数据机构学习笔记(四) 图之单源最短路径Dijkstra算法
以下是用于实现Dijkstra算法的图: 代码实现如下:#include<iostream>#define MaxVertexNum 6#define MAXNUM 65535using namespace std;//抽象数据类型typedef string vertextype;//顶点类型typedef float edgetype;//边的权值typedef stru
2018-01-30 12:44:20
288
原创 数据结构学习笔记(四) 图之邻接表实现最小生成树prim算法
以下是使用邻接表存储表示的,最小生成树prim算法的应用实例。 用于演示的图如下: #include<iostream>#define MaxVertexNum 6#define MAXNUM 65535using namespace std;//抽象数据类型typedef char vertextype;//顶点类型//边结点类型typedef struct edge{
2018-01-30 12:38:48
3604
2
原创 数据结构学习笔记(四) 图之最小生成树prim算法邻接矩阵实现
以下是使用邻接矩阵存储表示的,最小生成树prim算法应用的实例。 用于演示的图如下: #include<iostream>#define MaxVertexNum 6#define MAXNUM 65535using namespace std;//抽象数据类型typedef char vertextype;//顶点类型typedef int edgetype;//边的权值type
2018-01-30 12:36:55
1157
原创 数据结构学习笔记(四) 图之邻接矩阵实现广度优先遍历
以下是用邻接矩阵存储表示,实现图的广度优先遍历的实例。 用于遍历的无向图如下: //v0-v7依次为字符0-7#include<iostream>#define MaxVertexNum 8#define MaxSize 7using namespace std;//抽象数据类型typedef char vertextype;//顶点类型typedef int edgetype;/
2018-01-30 12:31:12
1269
原创 数据结构学习笔记(四) 图之邻接表实现广度优先遍历
以下是用邻接表存储表示,实现图的广度优先遍历的示例。 用于遍历的无向图如下: //v0-v7依次为a-h#include<iostream>#define MaxVertexNum 6#define MaxSize 7using namespace std;//抽象数据类型typedef char vertextype;typedef int datatype;//队列typed
2018-01-30 11:44:28
4539
原创 数据结构学习笔记(四) 图之邻接矩阵实现深度优先遍历
以下是用邻接矩阵存储表示,实现图的深度优先遍历的示例。 用于遍历的有向图如下: //递归实现#include<iostream>#define MaxVertexNum 6using namespace std;//抽象数据类型typedef char vertextype;//顶点类型typedef int edgetype;//边的权值typedef struct{
2018-01-30 11:40:09
2152
1
原创 数据结构学习笔记(四) 图之邻接表实现深度优先遍历
一下是使用邻接表存储表示,实现图的深度优先遍历的示例。 用于遍历的有向图如下: #include<iostream>#define MaxVertexNum 6using namespace std;//抽象数据类型typedef char vertextype;//边结点类型typedef struct edge{ int mark; int no; st
2018-01-30 11:36:54
3652
原创 数据结构学习笔记(三) 树形结构之利用堆构造哈夫曼树
以下是利用堆构造huffman树的示例,最终构造结果如下图所示: #include<iostream>using namespace std;//抽象数据类型const int m=12; //外部结点的数目typedef char datatype;typedef struct node1{ float key;//权值 datatype data; stru
2018-01-28 19:35:26
1339
原创 数据结构学习笔记(三) 树形结构之堆删除及堆排序
堆删除也即从堆(最小堆/最大堆)顶部删除(取出)元素,因每次删除(取出)的元素都为当前堆的最大/最小值,故可以利用堆的性质以及堆删除的算法,以达到堆排序的目的。 堆排序的时间复杂度为O(nlogn)。#include<iostream>using namespace std;//类型定义与变量说明const int DefaultSize=100;typedef int datatype;
2018-01-28 19:26:35
371
原创 数据结构学习笔记(三) 树形结构之筛选法建立最小堆
以下是使用筛选法建立最小堆的代码,用于建堆的数据为{35,26,48,10,59,64,17,23,45,31}。 筛选法也即,从堆的最右下一个分支节点起,自下而上遍历每一个分支节点,使得以该分支节点为根的子树成为最小堆。//筛选法+建立最小堆#includeusing namespace std;//类型定义与变量说明const int DefaultSize=100;type
2018-01-28 19:16:18
10574
原创 数据结构学习笔记(三) 树形结构之对称序线索二叉树的插入
以下是对称序线索二叉树的插入代码,用于插入的二叉树如下图所示: (其中X、Y结点用于插入,插入位置如图) #include<iostream>#define MaxSize 13using namespace std;//变量定义与声明typedef char datatype;typedef struct node{ datatype data; struct nod
2018-01-28 19:12:40
769
原创 数据结构学习笔记(三) 树形结构之遍历对称序线索二叉树
以下是前序、对称序以及后序遍历对称序线索二叉树的算法。 用于遍历的二叉树如下图: 一、前序遍历对称序线索二叉树。#include#define MaxSize 10using namespace std;//变量定义与声明typedef char datatype;typedef struct node{ datatype data; struct n
2018-01-23 14:09:09
756
原创 数据结构学习笔记(三) 树形结构之对称序线索化二叉树
以下是对称序线索化二叉树的算法代码实现,被线索化的二叉树如下: #include<iostream>#define MaxSize 10using namespace std;//变量定义与声明typedef char datatype;typedef struct node{ datatype data; struct node *lchild,*rchild;
2018-01-23 14:02:31
591
原创 数据结构学习笔记(三) 树形结构之二叉树的前、中、后序遍历递归方法
以下是二叉树的三种递归遍历方法,包括前序、中序以及后序递归。 递归所用到的图示如下: #include<iostream>using namespace std;//抽象数据类型——变量定义和变量说明const int MaxSize=10;typedef char datatype;typedef struct node{ datatype data; struct
2018-01-23 13:59:25
353
原创 数据结构学习笔记(三) 树形结构之前、中、后序遍历(非递归)
以下是以非递归方法遍历二叉树的代码实现,包括前序遍历、中序遍历以及后序遍历。 遍历所用的二叉树图示如下: 一、前序遍历。#includeusing namespace std;//抽象数据类型——变量定义和变量说明const int MaxSize=10;typedef char datatype;typedef struct node{ datatype d
2018-01-22 17:41:21
430
原创 数据结构学习笔记(三) 树形结构之一般二叉树的顺序存储_二叉链表表示法_转换
以下是一般二叉树的顺序存储表示法到二叉链表表示法的转换,最后用前序遍历的方式输出的代码。//一般二叉树的顺序存储表示法到二叉链表表示法的转换#include<iostream>using namespace std;//抽象数据类型——变量定义和变量说明const char MaxSize=10;typedef int datatype;typedef struct node{
2018-01-22 16:43:18
2418
1
原创 数据结构学习笔记(二) 链表之用循环链表解决约瑟夫问题
约瑟夫问题是个有名的问题:n个人围成一圈,从第一个开始报数,第m个将被杀掉,最后剩下一个,其余人都将被杀掉。例如n=6,m=5,被杀掉的顺序是:5,4,6,2,3,1。我们知道第一个人(编号一定是(m-1)) 出列之后,剩下的n-1个人组成了一个新的约瑟夫环(以编号为k=m mod n的人开始)。通过循环结构进行报数,建立用于遍历的结点p,以及p的前驱结点prior,数到出列的人就把该结点从循环链表
2018-01-22 15:58:13
357
原创 数据结构学习笔记(二) 链表之带表头结点的双循环链表基本操作
以下是带表头节点的双循环链表的基本操作,包括链表的创建、前插、删除、打印以及逆向打印。#include<iostream>using namespace std;//抽象数据类型typedef int datatype;typedef struct node{ datatype data; struct node *next,*prior;}DLnode;//双循环链表的
2018-01-22 15:52:21
376
原创 数据结构学习笔记(二) 链表之带表头结点的单循环链表基本操作
以下是带表头节点的单循环链表的基本操作,包括链表的创建、形成循环链表以及打印。#includeiostream>using namespace std;//抽象数据类型typedef int datatype;typedef struct node{ datatype data; struct node *next;}ListNode,*LinkList;//带
2018-01-22 15:48:51
438
原创 数据结构学习笔记(二) 链表之链队列基本操作
以下是链队列的一些基本操作,包括链队列的入队、出队、读队头元素以及打印。#include<iostream>using namespace std;//抽象数据类型typedef int datatype;typedef struct node{ datatype data; struct node *next;}QueueNode;typedef struct{
2018-01-22 15:44:43
248
原创 数据结构学习笔记(二) 链表之带表尾指针的单循环链表
以下是带表尾指针的单循环链表的基本操作,包括链表的创建、形成循环链表以及打印。#include<iostream>using namespace std;//抽象数据类型typedef int datatype;typedef struct node{ datatype data; struct node *next;}ListNode,*LinkList;//带表头结点
2018-01-22 15:42:52
4215
原创 数据结构学习笔记(二) 链表之链栈基本操作
以下是链栈的一些基本操作,包括链栈的推入、弹出、读栈顶元素以及打印。#include<iostream>using namespace std;//抽象数据类型typedef int datatype;typedef struct node{ datatype data; struct node *next;}StackNode,*LinkStack;//链栈的推入vo
2018-01-22 15:36:39
313
原创 数据结构学习笔记(二) 链表之带表头结点的单链表及其基本操作
以下是带表头节点的单链表的一些基本操作,包括带表头节点的单链表的创建、查找、插入、删除、反转以及打印。#include<iostream>using namespace std;//抽象数据类型typedef int datatype;typedef struct node{ datatype data; struct node *next;}ListNode;//单链表
2018-01-22 15:33:52
3830
原创 数据结构学习笔记(二) 链表之单链表的基本操作
以下是一些单链表的基本操作方法,包括单链表的创建、增加或删除元素,查找某一个元素以及反转单链表。#include<iostream>using namespace std;//抽象数据类型typedef int datatype;typedef struct node{ datatype data; struct node *next;}ListNode,*LinkLis
2017-10-26 06:52:21
355
原创 数据结构学习笔记(一) 顺序表
一、向量。#include<iostream>using namespace std;//抽象数据类型#define MaxSize 100typedef int datatype;typedef struct{ datatype V[MaxSize]; int n;}SeqList;//向量插入void Insert(SeqList &L,int i,datatyp
2017-10-25 23:05:08
303
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人