随笔分类 - 数据结构专题
包括树状数组,RMQ问题,线段树,Trie,KMP,Aho-Corasick自动机,后缀数组,LCP,BST,Treap,AVL。题目来源:自行搜索及大白书
摘要:以下是题目大意:有水平方向上很多块板子拼成的墙,一开始每一块都被涂成了颜色1,有C和P两个操作,代表的意思是:C X Y Z —— 从X到Y将板子涂成颜色ZP X Y —— 查询X到Y的板子共有多少种颜色 1 2 2 4 //有2块板子 两2颜色 4个询问2 C 1 1 ...
阅读全文
摘要:点更新用法很巧妙的一道题。倒序很容易的找到该人的位置,而update操作中需要不断的变化下标才能合理的插入。看了别人写的代码,学习了。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const ...
阅读全文
摘要:大意:给一个h*w的格子,然后给出多个1*w的板子往格子里面填,如果有空间尽量往上一行填满,输出行数,无法填补,则输出-1;可以使用线段树转化问题,将每一排的格子数目放到每一个叶子节点上,然后每有一块板子,进行query查询靠左子树的第一个大于板子的叶子,进行update操作更新叶子。每个节点附权值...
阅读全文
摘要:大意:n次操作原串查询逆序数,求出所有串中最小的逆序数。求逆序数属于线段树的统计问题,建立空树,每次进行插点时进行一次query操作即可。n次操作可以套用结论:如果是0到n的排列,那么如果把第一个数放到最后,对于这个数列,逆序数是减少a[i],而增加n-1-a[i]。 1 #include 2 #...
阅读全文
摘要:update:单点替换 query:区间最值 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 using...
阅读全文
摘要:绝对大坑。千万记住树状数组0好下标位置是虚拟节点。详见大白书P195。其实肉眼看也能得出,在add(有的也叫update)的点修改操作中如果传入0就会死循环。最后TLE。所以下标+1解决问题。上代码! 1 #include 2 #include 3 #include 4 #include 5...
阅读全文
摘要:题目连接:http://acm.uestc.edu.cn/#/problem/show/931OJ评判系统有些坑,不支持__int64以及输出的%I64d大家注意。全开long long也会TLE,比较坑。逆序的基础操作题,不错。 1 #include 2 #define MAX 100010 3...
阅读全文
摘要:是一道树状数组的裸题,也可以说是线段树的对于单点维护的裸题。多做这种题目可以提高自己对基础知识的理解程度,很经典。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #inclu...
阅读全文
浙公网安备 33010602011771号