![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
此专栏分享一些我刷的算法题,主要是会包括找工作过程中会遇见比较多的
亚里
在学习计算机算法设计,想提高代码编写能力;在学机器学习;在学习深度学习;研究方向是视频目标的追踪与分割;在学习基于vn.py的量化交易;希望能和大家多多交流,共同进步~
展开
-
算法导论第六章堆排序算法实现
#includeusing namespace std;using namespace std;const int maxn = 10010;#define PARENT(i) i/2#define LEFT(i) i#define RIGHT(i) (iint heap[maxn];int hsize = 0;int n;v原创 2017-06-10 14:22:17 · 344 阅读 · 0 评论 -
图的邻接表表示中删除冗余边
#include#includeusing namespace std;const int maxn = 1000 + 10;struct Node {int to;};vector edge[maxn], edgep[maxn];int main() {freopen("input.txt", "r", stdin);原创 2017-03-02 19:39:15 · 1881 阅读 · 0 评论 -
图的静态前向星表示中的转置问题
#include#includeusing namespace std;const int maxn = 1000 + 10;int head[maxn],head2[maxn];struct EdgeNode {int to;int w;int next;};EdgeNode Edge2[maxn],Edge[maxn];int原创 2017-03-02 19:14:21 · 268 阅读 · 0 评论 -
图的静态前向星表示中统计入度和出度
#include#includeusing namespace std;const int maxn = 1000 + 10;int head[maxn];int indegree[maxn], outdegree[maxn];struct EdgeNode {int to;int w;int next;};EdgeNode Edge[m原创 2017-03-02 18:53:24 · 399 阅读 · 0 评论 -
古代象形符号,Ancient Messages,UVA1103
题目链接:https://vjudge.net/problem/UVA-1103题解:通过观察题目,所给的几个象形符号可以由每个图像所包围产生的洞洞来确定,统计dfs对图中的块进行染色,然后再统计每个图中的所包围的块数,其中比较坑的是将十六进制转为二进制以后,坐标会发生变化,然后会导致各种错误,我仔细改了好久才AC的。代码:#include<iostream>#incl...原创 2018-10-22 00:06:16 · 543 阅读 · 0 评论 -
油田,Oil Deposits,UVA572
题目链接:https://vjudge.net/problem/UVA-572题解:这题的问题就是求八连通块的个数(横竖或对角线方向),使用一个visit数组记录有没有访问过,然后直接dfs就可以求得结果。代码:#include<iostream>#include<memory>#include<cstdio> #include<cst...原创 2018-10-17 00:07:56 · 192 阅读 · 0 评论 -
下落的树叶,The Falling Leaves,UVA699
题目链接:https://vjudge.net/problem/UVA-699题解:按题目要求读入数据的过程中,进行求和的计算,我在最开始的时候,想着用建树的方法来做,最后建树的过程中写错了,所以参考了一下书中代码。代码:#include<iostream>#include<cstring>#include<cstdio>#include&l...原创 2018-10-16 00:22:19 · 276 阅读 · 0 评论 -
天平,Not so Mobile,UVA839
题目链接:https://vjudge.net/problem/UVA-839题解:仔细读懂题目之后,会发现,本题就是使用递归求解计算WL*DL==WR*DR,解题过程中,递归函数的引用参数非常有意思。以后可以借鉴。代码:#include<iostream>using namespace std;bool solve(int &w) { int WL...原创 2018-09-26 00:18:05 · 244 阅读 · 0 评论 -
树,Tree,UVA 548
题目链接:https://vjudge.net/problem/UVA-548题解:这题是一道典型的二叉树数据结构题,核心在于,由二叉树的中序和后序遍历求先序遍历。解题的方法是,递归地先由后序遍历获得根结点,然后建立左子树和右子树,最后进行先序遍历,再按题目要求对先充遍历进行操作,输出结果。代码:#include<iostream>#include<cstdio&...原创 2018-09-20 01:31:31 · 225 阅读 · 0 评论 -
树的层次遍历,Trees on the level, UVA 122
题目链接:https://vjudge.net/problem/UVA-122题解:题意就是按题目要求建立二叉树,然后进行BFS,我在uDebug上进行了测试,都通过了,但是仍然没法通过vjudge上的测试例,找不到问题在哪儿?希望有大神能帮助看看,多谢,多谢。代码:(注意没有AC)#include<iostream>#include<cstdio>#in...原创 2018-09-19 23:16:24 · 216 阅读 · 0 评论 -
小球下落,Dropping Balls,UVA 679
题目链接:https://vjudge.net/problem/UVA-679题解:这题读完以后很明显的思路是用一个数组来模拟小球掉落的过程,但是通过极限分析的话,时间根本不能满足要求。因此需要另外寻求规律来解题。在对题目进行深入的理解之后,只需根据小球的奇偶性就可以确定它最终会落到哪棵子树中了【参考了书中代码】,这也体现在对题目深入建模的重要性。代码:#include<ios...原创 2018-09-14 08:41:20 · 205 阅读 · 0 评论 -
移动盒子,Boxes in a Line,UVA 12657
题目链接:https://vjudge.net/problem/UVA-12657题解:这一题的题意是有一行从1到n编号的盒子,按给定的4种指令对盒子进行操作,最后输出奇数位置上的盒子编号的和。解题的数据结构选择双向链表,增加头尾指针用作标注,另外使用一个pos数组记录每个盒子的指针位置,方便直接取得盒子指针。最后根据题意按指令对盒子进行模拟操作。我在这一题中使用的是自己写的指针链表,对指针之...原创 2018-09-12 14:17:33 · 295 阅读 · 0 评论 -
UVA11988 Broken Keyboard 破损的键盘
题目链接:https://vjudge.net/problem/UVA-11988题解:很明显,不能直接使用数组进行插入,因为普通的数组在头插入时效率非常低。所以本题实现的存储模型应选择链表。书中提供的是使用数据模拟链表的一种方法,我还没有掌握,就直接写了一个链表。特别注意,end指针必须要在插入时进行记录,如果在‘]’的时候再遍历到最后一个,仍然会超时。代码:#include<...原创 2018-09-09 14:27:47 · 256 阅读 · 0 评论 -
UVA 442 Matrix Chain Multiplication 矩阵链乘
题目链接:https://vjudge.net/problem/UVA-442题解:本题的关键是利用栈解析矩阵表达式。在求解的过程中,需要注意矩阵乘法的计算方法,行列要求,然后扫描输入表达式即可。代码:#include<iostream>#include<vector>#include<stack>#include<cstdio>...原创 2018-09-09 13:15:00 · 221 阅读 · 0 评论 -
铁轨(Rails, UVA514)
题目链接:https://vjudge.net/problem/UVA-514读过题目之后,很明显可以知道这是一道用栈来解决问题的题,关键在于栈的使用方法上。问题求解的是将1...N的数,进栈或出栈,能否得到给定的1至N的一个排列。很明显,题目只要求能否得到这样一个序列,所以没有必要把所有的进栈出栈的可能都列出来一一比较。分析题目可以发现一个规律:按顺序扫描给定的排列,如果当前数字和栈顶数...原创 2018-09-09 00:20:41 · 393 阅读 · 0 评论 -
并行程序模拟(Concurrency Simulator, UVA 210)
题目链接:https://vjudge.net/problem/UVA-210 这一题给我的感觉是,难度并不是很大,但难点在于理解题目,读懂题目之后将题目里描述的规则用代码写出来就行了。 核心有两点:一是维护ready queue和block queue;二是根据题目对模拟规则的描述进行各个statement执行的实现。在ac之后,我看了一个lrj书中提供的代码,整体方法是一致...原创 2018-09-09 00:08:16 · 565 阅读 · 0 评论