![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
简单算法
Miller c
这个作者很懒,什么都没留下…
展开
-
PTA(二叉树的同构+List Leaves+Tree Traversals Again)
二叉树的同构//题目链接此题一大坑点就是数据的读入......反正我是用scanf读入时debug很久最后被迫换了cin才解决的。剩下的就是逻辑分析 详细情况请看代码注释#include<bits/stdc++.h>using namespace std;typedef struct Btree tree;#define noil -1#define maxsi...原创 2018-12-05 23:25:47 · 335 阅读 · 0 评论 -
小解并查集(畅通工程+File Transfer)
什么是并查集呢?顾名思义就是对已知集合不停的合并与查找。合并:对某两个集合进行操作查找:查找某元素属于哪个集合我们可以用树结构来表示每个集合,且用某个元素所在树的根节点表示该元素所在的集合,当判断两个元素是否属于同一集合石时只需判断他们的根节点即可。合并时也只需连接根节点。则{1,5},{2,4,7,10},{3,6,8,9}如下所示例如要合并元素4和5,则只需找到相应的根节点...原创 2018-12-05 23:25:10 · 189 阅读 · 0 评论 -
07-图6 旅游规划
本题是一个较为单纯的迪杰斯特拉算法,有两个权重<距离,费用>。根据题意先找出最短路,若最短路有若干条,则选最小费用的那条。需要注意的是此图初始化是一个无向图...........因为这个WA了N次#include<bits/stdc++.h>#define maxsize 505#define inf 9999999using namespace std;...原创 2018-12-05 23:24:52 · 385 阅读 · 0 评论 -
07-图4 哈利·波特的考试 (25 分)
哈利·波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可以将老鼠变成猫。另外,如果想把猫变成鱼,可以通过念一个直接魔咒lalala,也可以将猫变老鼠、老鼠变鱼的魔咒连起来念:hahahehe。现在哈利·波特的手里有一本教材,里面列出了所...原创 2018-12-05 23:25:18 · 376 阅读 · 0 评论 -
列出连通集
给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。输出格式:按照"{ v1 v2 ... v...原创 2018-12-05 23:25:00 · 164 阅读 · 0 评论 -
Prim之 公路村村通
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通需要的最低成...原创 2018-12-05 23:24:41 · 325 阅读 · 0 评论 -
排序
冒泡排序:每次选择一个与相邻的元素比较,并且判断是否两两交换。(稳定)因为是严格的大于或小于。插入排序:每次选择一个元素开始,并且从最后一个开始比较选择合适位置插入。(稳定) 逆序对:如果i<j 且a[i]>a[j],则称i,j为一组逆序对。即一个序列的逆序对个数为该序列排序结束后需要交换元素的次数。排序其实质是消除逆序对,交换相邻两个元素就可以消去一对逆序对,则在插入...原创 2018-12-05 23:47:41 · 154 阅读 · 0 评论 -
堆
堆可以用来实现一个优先队列,也是一个挺有用的工具。有最大堆,最小堆之分。特点:即每个子树的根节点一定大于(小于)他的孩子节点堆其实是用完全二叉树实现的。插入:是在堆已经建立好的基础上,即已经是一个有序堆的前提下,每插入一个新的元素则放在最后,然后从下往上开始调整,直到找到一个合适位置。删除:这里指的是删除堆顶元素,思路是用最后一个元素与堆顶元素互换,然后删除堆的最后一个,此时除了堆顶以...原创 2018-12-10 23:54:16 · 124 阅读 · 0 评论 -
二叉搜索树的操作集
二叉搜索树也可称为二叉排序树,其树的特点是每一个节点的左孩子的值小于该节点的值,而右孩子则大于它。为了便于实例化每个操作,用以下例子来说明问题。题目链接 1.先来看插入操作,对于每输进来的一个值在该二叉搜索树上去寻找符合上述规则的位置。比较每一个节点,比它大,则下一步走向左孩子,反之走向右孩子。BinTree Insert( BinTree BST, ElementTy...原创 2018-12-05 23:25:36 · 595 阅读 · 0 评论 -
02-线性结构1 两个有序链表序列的合并
题目链接此题最大的坑就是只需要提交一个Merge函数即可。。。#include <stdio.h>#include <stdlib.h>typedef int ElementType;typedef struct Node *PtrToNode;struct Node { ElementType Data; PtrToNode Nex...原创 2018-12-05 23:25:55 · 193 阅读 · 0 评论 -
最长回文子序列——(动态规划)
给定某个字符串,找到其长度最大的子序列,该子序列无论正读还是反读都一样,例如abcdcba ofo.......现给定字符串 acccbda 求其最长回文子序列的长度。可以看出满足要求的最优解是 accca 即长度为5动态规划的本质是找最优子结构的解,然后写状态转移方程。思路是先比较某个字串的首尾看是否相同,若相同,则dp[i][j]=dp[i-1][j-1]+2,此处dp[i][...原创 2018-07-28 15:34:04 · 1556 阅读 · 0 评论 -
银行家算法
下面网址有具体的代码 是操作系统大作业的实现https://paste.ubuntu.com/p/fJXxHhNH65/原创 2018-07-07 23:39:32 · 459 阅读 · 0 评论 -
Hnust OJ 1638遍地桔子
题目描述 为了实验室的发展,队长决定在实验室外面的空地种桔子树。空地划分为N×M个格子,每个格子为1×1,队长买了N×M棵树苗。买树苗的时候,老板免费赠送了K袋肥料,这些肥料非常强力,可以使施肥格子和前后左右四个相邻格子(如果存在的话)中的桔子树产量加1。队长表示还想买肥料,但是队长很穷,买不起更多的肥料。每个格子都只能种一棵桔子树,每棵桔子树原来的产量是1,并且每个格子只能施肥一次。现在...原创 2018-02-14 09:55:39 · 505 阅读 · 1 评论 -
斯特林公式的初识
第一次写博客,很是生疏,Em....作为一名刚入门Code领域的小菜鸡,难得平时做题,今天无意刷到一道求n!的的位数的题,刚开始思路不是很清晰,也无从下手,因为数据也稍微有点大,Em.....之后就上网搜了一些相关问题偶然发现了斯特林公式,不是加特林哦哈哈哈,在网上也看了别的博主的一些讲解,我觉得挺不错的,不过有的相对于我们基础薄弱的来说有的就有丢丢不友好了,以下内容就我个人对这个题型的一点见解,...原创 2018-02-05 19:11:19 · 598 阅读 · 0 评论 -
N阶乘末尾零个数的问题
首先明确n!末尾零的个数等于n!中因子10的个数,又因为10=2*5,但因子2还包含在其他偶数中,所以我们就进一步转化为求解n!中因子5的个数。 式中的除法都是向下取整,算法时间度O(logn)110 = 158824554152274294042537031270907728717244102344735632075817483184445671629481830309599...原创 2018-12-05 23:26:23 · 549 阅读 · 0 评论 -
求对称数
如果直接暴力枚举则很有可能会超时,则按位处理即可,注意:当n全为9时或为一位数时单独处理#include<bits/stdc++.h>using namespace std;int n;char s[15];bool flag;int main(){ scanf("%d",&n); while(n--) { flag...原创 2018-12-05 23:26:14 · 2945 阅读 · 0 评论 -
Maximum Subsequence Sum
题目大致意思是求最大连续子序列的和,并输出求得序列的首尾元素,输出要求1:当有并列的最大和序列时输出最小的那一组值。2:当该序列全为零时输出0,0。3:只有负数和零,则输出总序列的首尾元素。采用在线更新的方法去解决,即发现当前的和为负数则舍弃并取下一个数为序列首元素,并且比较当前的和与最大和的大小。题目链接#include<bits/stdc++.h>#define m...原创 2018-12-05 23:26:04 · 143 阅读 · 0 评论 -
简单的迷宫
给定一个迷宫,问是否可以走出去,入口固定为左上角,出口为右下角,且只能上下左右直线移动。#include<bits/stdc++.h>#define inf -0x3f3f3f3f#define maxsize 100using namespace std;bool bfs();void init(int n,int m);struct graph{ ...原创 2018-12-23 15:23:15 · 256 阅读 · 0 评论