摘要:
给定数组,单点修改,区间查询k小。$(n \leq 10000)$ 暴力题?挺暴力的。树状数组+动态开点线段树。 树状数组维护每个权值的前缀和。可以视为是树状数组的每个节点开一个主席树吧。 修改:修改树状数组上包含修改点的权值线段树。$O(\log^2n)$ 查询:像主席树一样不断通过二分缩小区间, 阅读全文
摘要:
最近做题成双成对?不是双倍经验就是两题同解。 3940 3942 给定字典,给定字符串,删去字符串中所有字典内单词。保证不会出现二者包含状况。$n \leq 1e5,\sum len \leq 1e5$ AC自动机裸题。build出AC自动机后从左到右插入文本串,同时边匹配边push进栈里。匹配成功 阅读全文
摘要:
3702双倍经验。原题链接2212 现在有一棵二叉树,所有非叶子节点都有两个孩子。在每个叶子节点上有一个权值(有$n$个叶子节点,满足这些权值为$1..n$的一个排列)。可以任意交换每个非叶子节点的左右孩子。要求进行一系列交换,使得最终所有叶子节点的权值按照中序遍历写出来,逆序对个数最少。 一个节点 阅读全文
摘要:
并不敢说完全会了线段树合并,只是至少知道原理写法了。。。还是太菜了,每天被大佬吊锤qwq 我看到的几道线段树合并都是权值线段树的合并。这个算法适用范围应该只是01线段树的。 这两道算入门题了吧。。。 发现粘题面没人看(自己都懒得看),以后粘链接加题意吧。 永无乡 给$n$个没有连边的带权点,动态加边 阅读全文
摘要:
struct ACM{ int ch[N][26],f[N],cnt[N]; int sz,rt; int ins(char *s){ int n=strlen(s),u=rt; for(int i=0;iq; while(!q.empty())q.pop(); int u=0; for(in... 阅读全文
摘要:
1A了好高兴。。cdq分治的思想。感觉难点在单调栈。 Description JOI村有一片荒地,上面竖着$N$个稻草人,村民们每年多次在稻草人们的周围举行祭典。 有一次,JOI村的村长听到了稻草人们的启示,计划在荒地中开垦一片田地。和启示中的一样,田地需要满足以下条件: 田地的形状是边平行于坐标轴 阅读全文
摘要:
我也不知道为啥要证明这玩意,但是我比较傻,看懂一遍之后怕忘了,所以还是写个博客。。 首先给出这么一个定义式: $f(n)=\sum_{d\vert n}g(d)$ 于是就有这么一个定理: $g(n)=\sum_{d\vert n}\mu(d)\cdot f(\frac nd)$ 话说回来这个$\mu 阅读全文
摘要:
用了一堂半的课才彻底搞懂。其他神犇写的博客或多或少有点小bug,所以orzzz不才斗胆重新写一个。 里面大量穿用其他神犇的原话,就不逐一标明出处了。 引用资料 Accept的博客 MathonL的博客 首先是最经典的题的题面。 HDU 3507,很适合的一个入门题。 大概题意就是要输出$N$个数字$ 阅读全文
摘要:
__builtin_popcount()懒得写二进制查1,用这个啊 vfk巨佬的反演魔术 Prim,Kruskal不能用于最小树形图(有向)!!! 对于Prim比如 3 3 1 2 4 1 3 5 3 2 1 对于Kruskal,如果直接当做无向图会出现不是树形图啊喂、、 long long×lon 阅读全文