数据结构
王莞原
加油!
展开
-
03-树3 Tree Traversals Again
push对应着前序遍历,pop对应中序遍历,然后根据前序中序来推后序。#include <iostream>#include <stack>using namespace std;int post_idx, n;int N;void solve(int pre[], int in[], int n){ if (n < 0) return; if (n >原创 2017-03-27 19:14:32 · 221 阅读 · 0 评论 -
hdu 2489 Minimal Ratio Tree 最小生成树+枚举
题意 在n个节点中找出由m个节点组成的树,这个数的ratio最小 应为节点数量很少,最小生成树加枚举所有n个节点的情况就能过 这里用到了二进制枚举。#include <cstdio>#include <algorithm>#include <iostream>#include <vector>#include <string>#include <sstream>#includ原创 2017-10-14 16:57:18 · 266 阅读 · 0 评论 -
hdu 3926 hand in hand 同构图
题目说的很清楚,判断同构图。 知道了同构图的定义后就不难判断了。 同构图: 图论当中的术语,假设G=(V,E)和G1=(V1,E1)是两个图,如果存在一个双射m:V→V1,使得对所有的x,y∈V均有xy∈E等价于m(x)m(y)∈E1,则称G和G1是同构的,这样的一个映射m称之为一个同构。 简单的说,就是两个图 环数相同,链数相同,这些环,链在两个图中要大小对应相等。#i原创 2017-10-14 14:54:50 · 337 阅读 · 0 评论 -
hdu 3308 线段树
写给自己看,记自己错的几个点#include #include #include #include #include using namespace std;typedef long long ll;const int MAXN = int (1e5) + 5;const int INF = (1 << 30);#define lson rt << 1, l, m#原创 2017-08-07 10:14:40 · 214 阅读 · 0 评论 -
poj 2528
http://www.cnblogs.com/kevince/p/3893531.html 线段树,需要离散化#include #include #include #include #include #include #define lson rt << 1, l, m#define rson rt << 1 | 1, m + 1, rconst int MAXN = 200原创 2017-08-04 14:34:11 · 191 阅读 · 0 评论 -
Buy Tickets 线段树
因为后来的人插队会影响先来的人的位置所以从后往前处理最后一个人的位置是可以直接确定的,就是r[i]+1因为对于前一个人来说,前一个人加入队列是后一个人是不存在的,所以在处理完后一个人后要把后一个人占的位置给删去#include #include #include #include using namespace std;const int MAXN = 200005;typedef原创 2017-08-03 15:30:43 · 191 阅读 · 0 评论 -
Billboard 线段树
每次贴公告时都尽可能上线段树中的val表示在[l,r]范围内黑板所剩的最大宽度每次查询都先往左查询,这样就可以优先贴在靠上的地方#include #include #include using namespace std;const int MAXN = 200005;struct Node { int l, r; long long val; int mid() {原创 2017-08-03 15:23:59 · 221 阅读 · 0 评论 -
L2-011. 玩转二叉树
L2-011. 玩转二叉树https://www.patest.cn/contests/gplt/L2-011时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越给定一棵二叉树的中序遍历和原创 2017-08-02 12:46:26 · 186 阅读 · 0 评论 -
AOJ ALDS1_8_A: Binary Search Tree I
两种二叉搜索树的插入算法#include <iostream>#include <algorithm>#include <string>#include <vector>#include <cstdio>#include <map>using namespace std;const int SIZE = 10005;struct BSTNode{ int key; B原创 2017-05-21 15:59:10 · 350 阅读 · 0 评论 -
pat 05-树9 Huffman Codes
#include #include #include #include #include #include #include #include using namespace std;typedef struct BiTNode { char key; int weight; BiTNode *lchild, *rchild; BiTNode(char k = '\0',原创 2017-05-29 15:42:52 · 252 阅读 · 0 评论 -
AOJ ALDS1_7_A 树
给你树的一些信息,要你按要求输出树。#include <iostream>#include <algorithm>#include <cstdio>#include <list>#include <stack>#include <vector>#include <map>#include <set>#include <cstring>#include <cmath>#includ原创 2017-04-24 17:50:05 · 244 阅读 · 0 评论 -
HDU4821字符串哈希
原文出处:http://www.cnblogs.com/Norlan/p/4886383.html 写的超好http://acm.hdu.edu.cn/showproblem.php?pid=4821这是2013年长春区域赛的铜牌题。。。然而第一次做的时候一直觉得会超时的。。最后才知道并没有想象中的那么恐怖;这题有两个注意的地方:(1)h[i] = h[i-1]转载 2017-03-12 16:51:20 · 521 阅读 · 0 评论 -
03-树2 List Leaves
用数组模拟出二叉树,并采用并查集的方法来找出树根。#include <iostream>#include <algorithm>#include <queue>#define Null -1#define pTree intusing namespace std;struct TNode{ int lc, rc;};TNode node[10];int parent[10]原创 2017-03-27 19:22:04 · 203 阅读 · 0 评论 -
Hdu4699 Editor: 数据结构之对顶栈(顺便记录一个小毛病)
数据结构都是工具。 本文先通过简略描述告诉大家什么是对顶栈,然后我们来读题分析为什么要使用对顶栈这一数据结构。 一、什么是对顶栈?描述:大家都知道栈是一种后进先出(LIFO, Last in, First out.)的数据结构,它至少提供两种操作:进栈和出栈。执行进出栈操作的一端叫栈顶,另一端叫栈低。进栈和出栈操作都是O(1)的复杂度。那么对顶栈顾名思义就是...原创 2019-01-28 18:44:47 · 583 阅读 · 0 评论