摘要:
题目很水,但毕竟是自己第一道的Trie,所以还是发一下吧.Trie的更多的应用慢慢学,AC自动机什么的也慢慢学....#include#include#include#include#include#include#define maxn using namespace std;struct TrieNode{ int cnt; int flag; TrieNode *next[26];}T[500000],*Trie;int top;void insert(char *c){ int len=strlen(c);TrieNode *p=Trie; for(int i=0;inext[c[i] 阅读全文
摘要:
很久没打代码了,不知道为什么,昨天考岭南文化之前突然开始思考起这个问题来,这个问题据说有很多种方法,划分树什么的,不过对于我现在这种水平还是用熟悉的线段树做比较好。这到题今年8月份的时候曾经做过,那个时候是作为对函数式线段树的一个基础题来做的,那个时候不懂,看着别人的代码对拍然后摸索下来,所以到了昨天我就已经彻底忘了,因为代码不是自己写的。昨天想了很久,终于参透了它的精髓。首先对于给出的a[1]~a[n]这么多个数离散化,然后建立一个线段树,线段树中的结点对应的区间[L,R]表示的是在[L,R](离散化后的值)中有多少个数。举个例子,a={1,3,2,6,4,7} 那么假如我对这整个数组建线段 阅读全文