
数据结构
文章平均质量分 78
mtxxxx
qq 1149169650
邮箱:huangxin0124@tongji.edu.cn
展开
-
poj 2104(划分树 求第k大的数)
//用的是书上的模板#include #include #include #include using namespace std;const int maxn=100010;int tree[30][maxn],sorted[maxn],toleft[30][maxn];void build(int l,int r,int dep){ if(l==r)return;原创 2016-09-07 09:41:29 · 271 阅读 · 0 评论 -
Day8 栈
题目链接:点击打开链接写了个栈..代码:#include<iostream>#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#include <cmath>#include <queue>#include &原创 2018-06-10 17:54:09 · 150 阅读 · 0 评论 -
Day7 prim的堆优化
题目链接:点击打开链接复杂度:O(MlogM) (M为边数),未优化时复杂度为O(N^2)首先把1这个点标记为已访问,把它所连的边都加到优先队列里边,然后每次从优先队列顶端拿终点未访问的边,把终点标记成已访问,把终点连的边放进优先队列,直到无边可拿或所有点均访问过为止。代码:参考别人的代码.. https://blog.youkuaiyun.com/jhgkjhg_ugtdk77/article/det...原创 2018-06-09 10:53:35 · 516 阅读 · 0 评论 -
Day12 次小生成树(这题是求有没有两个最小生成树)
题目链接:点击打开链接思想:首先用prim算法求一遍最小生成树,在求的过程中维护一个数组max_len来存最小生成树中的点i到j这条路径上最大的一条边,为了维护这个数组还要记录每个最小生成树节点的前驱节点pre。然后遍历每一条不在树上的边e(i,j),比较e(i,j)和max_len[i][j]的大小,如果一样大说明可以有第二个最小生成树了,如果一直都找不到和它一样大的说明不存在。求次小生成树就是...原创 2018-06-15 21:38:53 · 189 阅读 · 0 评论 -
Day12 并查集+枚举
题目链接:点击打开链接代码:#include<iostream>#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#include <cmath>#include <queue>#include <原创 2018-06-15 17:03:41 · 166 阅读 · 0 评论 -
Day13 排序复习
快排#include<iostream>#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#include <cmath>#include <queue>#include <map>原创 2018-06-23 10:43:39 · 162 阅读 · 0 评论 -
Day11 Prim 未优化版本
题目链接:点击打开链接代码:#include<iostream>#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#include <cmath>#include <queue>#include <原创 2018-06-14 13:48:05 · 197 阅读 · 0 评论 -
Day10 最小生成树 kruskal算法
题目链接:点击打开链接算法步骤:1)把所有边存在一个数组里边,按权值从小到大排个序2)从小到大取出每一条边,看看边的两个端点在不在一个联通集上(并查集),如果在就舍弃这条边看下一条,不在就把这两个点并起来,答案加上这条边的长度。3)判断一下最终是否是联通的,如果是连通的就是一棵最小生成树了。代码:#include<iostream>#include <cstdio>#i...原创 2018-06-13 14:55:26 · 162 阅读 · 0 评论 -
Day10 树的直径,dfs判断图是否是棵树
题目链接:点击打开链接求树的直径:两次bfs,第一次求出距离根节点最远的节点p,第二次求出距离节点p最远的节点e,用数组pre存路径。代码:#include<iostream>#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#inclu...原创 2018-06-13 13:30:16 · 289 阅读 · 0 评论 -
Day5 简单hash,list
题目链接:点击打开链接代码:#include<iostream>#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#include <cmath>#include <map>using namespace st原创 2018-05-30 11:24:05 · 130 阅读 · 0 评论 -
机试刷题Day2 rmq+二分
题目链接:点击打开链接代码:#include<iostream>#include <cstdio>#include <cstring>#include <queue>#include <algorithm>using namespace std;const int maxn = 100005;int a[maxn],q_ma...原创 2018-05-24 21:18:56 · 214 阅读 · 0 评论 -
Day6 堆
写了一个最大堆~题目链接:点击打开链接代码:#include<iostream>#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#include <cmath>#include <map>using name原创 2018-06-04 09:50:53 · 123 阅读 · 0 评论 -
Day3 树状数组求逆序对
题目链接:点击打开链接遍历读入的数组,每读到一个数就说明这个地方的数字个数多了1,然后算一下这时候比它大的却在它之前读的数字有几个加起来就好了。数字有点大hash一下。#include<iostream>#include <cstdio>#include <cstring>#include <queue>#include <algori...原创 2018-05-25 09:27:30 · 136 阅读 · 0 评论 -
机试准备Day5 trie树 简单题 hihocoder 1014
题目链接:点击打开链接关于trie树复杂度什么的,题目里面有代码:#include<iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;char s[15];int ans;int tot = 1;struct TreeNod...原创 2018-05-04 14:13:47 · 228 阅读 · 0 评论 -
二维线段树 模板题
题目链接:https://vjudge.net/contest/169793#problem/B#include #include #include #include #include #include #include #include #define ll long longusing namespace std;const int INF=1<<30;co原创 2017-07-20 09:27:16 · 364 阅读 · 0 评论 -
Treap 模板
题目链接: https://vjudge.net/contest/147756#problem/B#include #include #include #include #include #include #include #include #define ll long longusing namespace std;struct Node { Node *原创 2017-07-22 19:09:13 · 249 阅读 · 0 评论 -
Day7 栈(2)
题目链接:点击打开链接代码:#include<iostream>#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#include <cmath>#include <queue>#include <原创 2018-06-10 19:30:53 · 120 阅读 · 0 评论