摘要: 可持久化线段树,别名主席树。 在我看来这个数据结构绝妙之处在于它把可持久化的概念用于解决区间查询的问题。 一般主席树用于解决区间第k大的问题。 我们建立一棵权值线段树,权值线段树就是线段树上第i个叶子节点储存i出现了多少次(类似于桶排序) 假想,一个数列第i个元素a[i]=p,是在第i个时间节点插入 阅读全文
posted @ 2019-08-06 21:56 Isakovsky 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你两个序列a,b,序列c的某位是由序列a,b的此位异或得来,让你重排序列ab,找出字典序最小的序列c。 题解: 如果能找到a,b序列中完全一样的值当然最好,要是找不到,那也尽量让低位不一样。 因此,将两个序列中元素的二进制视作字符串,建字典树。 在两棵字典树上,贪心地找让当前位一样的。 每 阅读全文
posted @ 2019-08-06 17:16 Isakovsky 阅读(469) 评论(0) 推荐(0) 编辑
摘要: 这个板子能够解决任何线性递推式,只要你确定某个数列的某项只与前几项线性相关,那么把它前若干项丢进去,这个板子就能给你返回你要求的某项的值。 原理???(待补充) 阅读全文
posted @ 2019-08-06 15:46 Isakovsky 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你一个C,再给你n组a,b,让你求x取什么值的时候,$ \sum_{i=1}^n |a_i*x+b_i| =C $,要求求出解的个数,并用最简分数从小到大表示,如果有无穷多解,输出-1. 题解: 其实这些方程就是在平面上的一组曲线,都是V形的,最低点都在x轴上,求出所有的零点,以这个零点从 阅读全文
posted @ 2019-08-06 15:21 Isakovsky 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你一个暴力匹配字符串公共前缀后缀的程序,为你对于某个字符串,暴力匹配的次数是多少。 题解: 使用扩展kmp构造extend数组,在扩展kmp中,设原串S和模式串T。 extend[i]表示T与S[i,n-1]的最长公共前缀。 在本题中,只需要将S,T均设为题目中输入的字符串即可,这样,ex 阅读全文
posted @ 2019-08-06 14:56 Isakovsky 阅读(313) 评论(0) 推荐(0) 编辑