树
雨羊
学生
展开
-
并查集模板
const int MAXN=1005;int father[MAXN]; int find(int x)//寻找根结点 { if(x==father[x])return x; return father[x]=find(father[x]); //压缩路径 } void merge(int a,int b)//合并集合 { int x=find(a); int y=fi原创 2017-07-26 15:18:36 · 179 阅读 · 0 评论 -
二叉树遍历
已知先序中序构树#include <cstdio>#include <iostream>using namespace std;const int N = 50;int pre[N], in[N], post[N]; //存放先序,中序,后序的数组 int n;//树中元素个数struct node { int data;//数据 node* ...原创 2017-07-27 18:46:13 · 340 阅读 · 0 评论 -
Trie树(Prefix Tree)介绍
本文用尽量简洁的语言介绍一种树形数据结构 —— Trie树。一、什么是Trie树Trie树,又叫字典树、前缀树(Prefix Tree)、单词查找树 或 键树,是一种多叉树结构。如下图: 上图是一棵Trie树,表示了关键字集合{“a”, “to”, “tea”, “ted”, “ten”, “i”, “in”, “inn”} 。从上图可以归纳出Trie树的基本性质:根节点不包含字符,除根节点外的每...转载 2018-07-12 18:03:20 · 231 阅读 · 0 评论 -
poj 2513 trie树
题目大意:输入木棒两端的颜色,一端颜色相同的木棒才能连接,问最后能不能连接成一根木棒思路:欧拉回路:如果图G中的一个路径包括每个边恰好一次,则该路径称为欧拉路径,如果一个回路是欧拉路径,则称为欧拉回路无向图存在欧拉回路的充要条件一个无向图存在欧拉回路,当且仅当该图所有顶点度数都为偶数,且该图是连通图。有向图存在欧拉回路的充要条件一个有向图存在欧拉回路,所有顶点的入度等于出度且该图是连通图。本题用并...原创 2018-07-12 21:18:36 · 131 阅读 · 0 评论 -
POJ 3630 TRIE树
题目大意:一个数不能是另一个数开头的子串,trie树暴力解法:然后细细一想,既然是判断相同串是否存在,那我直接将串进行排序将第一位相同的串排在一起再进行判断操作,就大大优化了搜索时间。#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<a...原创 2018-07-12 21:39:17 · 141 阅读 · 0 评论 -
poj 1703 并查集
题目链接:点击打开链接题目大意:一共有N个人,给出M个操作分为两种:1、A a b :提问a和b是否是同一个帮派的。有三种答案:是,不是和不确定2、D a b :a和b不是同一个帮派的。解题思路:种类并查集,在一个集合里的证明他们之间有关系,种类里有0,和1两种。0代表着同父节点相同势力,1代表不同。主要是不在同一集合时合并和查找操作;#include<iostream>...原创 2018-07-14 12:10:54 · 125 阅读 · 0 评论 -
POJ 1182 食物链 并查集
题目链接:点击打开链接思路:并查集判断是否有关系类型一个三种#include<iostream>#include<string>using namespace std;const int N = 500005;int father[N];int sum = 0;int d[N] = { 0 };//代表与根节点的距离,有0,1,2三种int n;int fi...原创 2018-07-14 12:18:01 · 219 阅读 · 0 评论