树状数组&线段树&字典树...
文章平均质量分 52
不可不戒
这个作者很懒,什么都没留下…
展开
-
树状数组
我们知道要是一个数组的和C[i]=A[1]+A[2]+.......+A[i],那么我更改其中任意一项值A[i],那么C[i],C[i+1],C[i+2]....C[n]都会随之变化,所以我们要调整C[]当n非常大时就需要很长的时间,必然会导致超时。这样就可以引入树状数组,它的修改和求和的复杂度为nlogn. 树状数组是一种数组结构,能够高效地获取数组中连续n个数的和。 下面这张图是基转载 2012-07-11 12:28:39 · 689 阅读 · 0 评论 -
hdu1305 Immediate Decodability (字典树)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1305 题解:判断字符串是否存在前缀 #include #include #define MAXN 100002 int child[MAXN][11];//child[i][j]=0说明没有对应的节点,以i为根节点的子树, int flag[MAXN]; i原创 2013-08-17 19:50:21 · 638 阅读 · 0 评论 -
hdu1072 What Are You Talking About (字典树)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1075 题解:套字典树模版即可 #include #include #include #define MAXN 50002 typedef struct node { struct node *child[26];//存储下一个字符原创 2013-08-17 19:15:30 · 633 阅读 · 0 评论 -
hdu1671 Phone List (字典树)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1671 题解:判断字符串是否存在前缀,字典树(静态字典树) #include #include #define MAXN 100002 int child[MAXN][10];//child[i][j]=0说明没有对应的节点,以i为根节点的子树, int flag[MAXN]原创 2013-08-17 11:53:27 · 612 阅读 · 0 评论 -
hdu1251 统计难题 (字典树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251 题解:字典树模版题, Trie树|字典树的简介及实现(转) Trie,又称字典树、单词查找树,是一种树形结构,用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。 相对来说,Trie树是一种比较简单的数据结构.理解起来比较简单,正所谓简单的东西也得付出代价.故T原创 2013-08-17 10:01:01 · 650 阅读 · 0 评论 -
hdu1247 Hat’s Words (字典树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1247 题解:给一些单词,找出那些可以分成另外的两个单词的单词,字典树 #include #include #include #define MAXN 50002 typedef struct node { struct node *child[26];原创 2013-08-17 13:54:34 · 651 阅读 · 0 评论 -
hdu2688 Rotate (树状数组)
#include #include #define MAX 3000002 int arr[10002],a[MAX]; //树状数组 int lowBit(int x) { return (x&(-x)); } void add(int index,int val) { while(index<10001) { arr[index]+=v原创 2013-07-14 20:07:56 · 1004 阅读 · 4 评论 -
hdu1800 Flying to the Mars (字典树)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1800 题解:the minimum number of broomsticks needed,The soldier who has a higher level could teach the lower , that is to say the former’s level > the原创 2013-08-19 22:37:30 · 649 阅读 · 0 评论 -
hdu2689 Sort it (树状数组)
#include #include #define MAX 1002 int arr[MAX],n; //树状数组 int lowBit(int x) { return (x&(-x)); } void add(int index) { while(index<=n) { arr[index]++; index+=lowBi原创 2013-07-14 20:30:20 · 858 阅读 · 1 评论 -
hdu2492 Ping pong (树状数组)
#include #include #define MAX 100005 int arr[MAX],a[MAX],n; int leftMin[MAX],leftMax[MAX],rightMin[MAX],rightMax[MAX]; int lowBit(int x) { return (x&(-x)); } void add(int index,int val) { while原创 2013-07-14 16:35:12 · 719 阅读 · 0 评论 -
hdu1541 Stars (树状数组)
#include #include #define MAX 32005 int arr[MAX],ans[MAX],n; //树状数组 int lowBit(int x)//二进制后面为0的个数 { return (x&(-x)); } void add(int index,int val)//将index位置的值+val { while(in原创 2013-07-13 22:04:28 · 723 阅读 · 0 评论 -
hdu1556 Color the ball (树状数组)
#include #include #define MAX 1000005 int tree[MAX],n; int lowBit(int num) { return (num&(-num)); } void Add(int index,int val)//前n项每项增加val { while(index>0) { tree[index]+=val; index-=lowB原创 2013-07-13 21:02:54 · 768 阅读 · 0 评论 -
hdu1754 I Hate It (线段树)
#include #define MAXN 800002 int arr[MAXN]; void build(int left,int right,int root) { int mid; if(left==right) { scanf("%d",&arr[root]); return; } mid=(left+right)>>1; build(left,mid,roo原创 2013-07-25 13:08:18 · 602 阅读 · 0 评论 -
线段树
从简单说起,线段树其实可以理解成一种特殊的二叉树。但是这种二叉树较为平衡,和静态二叉树一样,都是提前已经建立好的树形结构。针对性强,所以效率要高。这里又想到了一句题外话:动态和静态的差别。动态结构较为灵活,但是速度较慢;静态结构节省内存,速度较快。 接着回到线段树上来,线段树是建立在线段的基础上,每个结点都代表了一条线段[a , b]。长度为1的线段成为元线段。非元线段都有两个子结点,左结点转载 2012-07-16 11:14:32 · 1284 阅读 · 0 评论 -
字典树
又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 字典树与字典很相似,当你要查一个单词是不是在字典树中,首先看单词的第一个字母是转载 2013-07-20 13:03:58 · 621 阅读 · 0 评论 -
hdu1394 Minimum Inversion Number 树状数组
#include #include #define MAX 5005 int arr[MAX],n; //树状数组 int lowBit(int x)//二进制后面为0的个数 { return (x&(-x)); } void add(int index) { while(index<=n) { arr[index]++; index+=lowBit(index); } }原创 2013-07-14 09:14:51 · 787 阅读 · 0 评论 -
hdu2846 Repository (字典树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2846 题解:For each query, you just output the number of the merchandises, whose names contain the search string as their substrings. 求输入的单词是字原创 2013-08-17 20:59:20 · 752 阅读 · 0 评论