树
zhang360896270
任何语言中的任何语法特性的诞生都不是随意而为的,来源于真实世界的需求驱动。
展开
-
hdu1166 敌兵布阵
很基础的线段树,本人做的第一个线段树题目,建树、插入、删除等功能会实现就可以了,另外不知道为什么用映射数组模拟一直WA。。。。ORZ 代码如下: #includeusing namespace std;const int maxsize = 50000;struct Stree{ int left, right; int cover;};Stree tree[3*maxsize];int sum;void Creat(int l, int r,原创 2011-02-08 18:10:00 · 793 阅读 · 0 评论 -
hdu1698 Just a Hook
又是一道线段树的题目,题目大意就是给你线段[a, b]和一个价值c,那么[a, b]这条线段的值就是c,现在求整个线段的价值。因为每条线段的价值可能会被后面更小的区间价值覆盖,所以这就是很明显的线段树。一开始以为这题很水,因为只需要把每一个单位长度的线段值累加直到求出[1, to原创 2011-07-09 10:34:24 · 614 阅读 · 0 评论 -
hdu1541 Stars
这是一道可以用线段树做的题目,题目大意是计算某一刻星星坐标左下方的星星数(自己没有被包括),很明显的线段树,由于输入数据已经保证y坐标是按照递增顺序输出的,那么可以对每一个y,将其x打成一棵线段树,然后依次找出[0,x[i]]之间的cover值就可以了,要注意一下是先计算当前x[原创 2011-07-07 10:19:09 · 1805 阅读 · 0 评论 -
hdu2896 病毒侵袭
刚刚看完AC自动两天就发现了这道自动机的题目,这题不是很难,但是有几个细节需要注意一下,首先网站中的病毒类型不能重复,也就是说没有可能出现两个同样的病毒,我的处理方法是利用set这样的话判重和排序都省了,其次输出的网站编号和最终的病毒网站数不是一样的(我就是卡原创 2011-07-06 09:30:33 · 814 阅读 · 0 评论 -
hdu2222 Keywords Search
这题是简单的AC自动机,非常基础的自动机入门题,已经加上了个人对代码的注释,欢迎各位给予指正和修改。。。#include using namespace std;const int size = 26;struct node{ int count;原创 2011-07-04 22:27:34 · 478 阅读 · 0 评论 -
hdu1671 Phone List
这个题目可以用两种方法:首先都是将电话号码打成字典树,然后第一种方法就是记录下每次输入的号码,然后另外从头到尾将每一个电话号码都进行查找,看是否有前缀存在,这种方法无论从时间、空间都不优化,第二种方法相对好点,建树之时标记一下当前节点的下一个节点是否存在(当前原创 2011-07-05 16:22:48 · 414 阅读 · 0 评论 -
hdu1298 T9
基于字典树的广搜,将所有给定的单词打成一棵字典树,然后从根开始广搜其每一个节点,用优先队列弹出当前长度下最大优先级的字母。#include #include using namespace std;const int size = 26;struct Trie原创 2011-07-05 14:35:29 · 638 阅读 · 0 评论 -
hdu1671
个人感觉trie作为一种数据结构其实并不难,在hdu上早先干掉了1251、1075,今天干掉了1247、1671,1247看懂题以后想了一下没有想出,后来参照网上代码,发现其实并不难,输入数据存入字典树后,再重新例举已输入的串,每一个串代入到字典树中,先判断是不是前缀,然后判断其后的那个单词是不是在字典树中,1671个人认为较为简单,设置一个count成员变量记录有多少个串通过该字母,判断的时候只要count>1&&x[i+1]=='/0'就可以了。 附1671代码: #includeusing原创 2011-02-08 18:13:00 · 1968 阅读 · 1 评论 -
hdu1698(线段树)
个人觉得此题题意有点不明,所有的hook一开始的价值都是1,这点需要注意一下,本题类似于线段染色问题,cover=-1就表示此线段中的颜色为混合色,计算时采用递归进行计算,直到找到非混合色(纯色)的线段再加,代码如下:#includeusing namespace std;const int maxsize = 50000;struct Stree{ int left, right, mid; int cover;};Stree tree[6*maxsize+1];in原创 2011-02-09 16:38:00 · 567 阅读 · 0 评论 -
hdu1556 color the ball
很早以前就看过线段树相关内容,但是感觉学得并不扎实,现在重新看下果然发现了很多问题,这题是属于线段树的入门题,帮助我很好的理解了线段树,时间上还待优化 #include using namespace std;const int size = 100000;s原创 2011-07-06 12:51:38 · 618 阅读 · 0 评论