板子1 板子2 在放板子的代码之前,先讲一下树状数组。 树状数组的作用: 在有修改时可以做到log级别求前缀和 还可以结合差分等神奇的东西食用 空间比线段树要省的多,代码量也少的多 在单点查询的时候比线段树快了不是一点(我真的没有拿线段树的板子去拍这两个题) 我们先来看一下树状数组是个什么东西 首先 ...
分类:
编程语言 时间:
2019-07-03 19:42:37
阅读次数:
121
A 略 B 记录每种字母的出现次数前缀和,然后p[i][j]表示字母j出现至少i次的最靠前的位置,然后直接搜取最大即为答案,O(26(n+m)+Σ|ti|),差点想到二分去了,复杂度会多个log #include<bits/stdc++.h> using namespace std; const i ...
分类:
其他好文 时间:
2019-07-01 20:16:16
阅读次数:
144
HDU - 6086 前缀和后缀分别建AC自动机, 考虑从两端往中间dp dp[ o ][ i ][ j ][ mask ] 表示放了前面和后面o个, 第一个自动机在 i 位置, 第二个自动机在 j 位置, 拥有的目标串的状态是mask的方案数。 对于跨过两端的东西, 我们最后处理就好了。 ...
分类:
其他好文 时间:
2019-06-29 21:58:43
阅读次数:
95
n*m的矩阵 就是先把第一行、第一列的前缀和先求出来 再从2,2开始求前缀和扩展 二维前缀和就是求一个矩阵内所有数字的和 定义矩阵右下角的点为i,j S[i][j]=S[i][j-1] + S[i-1][j] - S[i-1][j-1] + v[i][j]; ...
分类:
其他好文 时间:
2019-06-29 11:14:27
阅读次数:
88
非常正规的板子题了可以说 P3372 【模板】线段树 1 题解 注意几个点就好啦 (1)懒标记 add[ ],数组一定要开的大一点 前缀和 sum[ ],数组一定要开的大一点,还要开long long (2)build 建树函数:树 k ,边界 l ~ r (3)Add 加数函数:树 k ,边界 l ...
分类:
其他好文 时间:
2019-06-29 10:56:52
阅读次数:
106
很思维的题,b的1个数和c的1个数相差为偶数时,必定有偶数个不同 反之必定有奇数个不同 ...
分类:
其他好文 时间:
2019-06-29 01:09:37
阅读次数:
118
一、前缀和(基础) 前提:给一个长度为n的数列,m次询问,问[L,R]区间内数列各项和 所以,前缀和就是前面i个数的总和,所求区间和即为a[R]-a[L-1] 二、差分(基础) 前提:给一个长度为n的数列,对[L,R]区间加上或减去某个值,最后问[L,R]区间内数列各项和 三、二维前缀和 前提:给定 ...
分类:
其他好文 时间:
2019-06-29 00:54:06
阅读次数:
95
https://loj.ac/problem/517 题解 首先我们如果没有排序这个骚操作的话,可以直接记一下各个数位的前缀和,然后异或标记给全局打,查询的时候先把区间信息提取出来然后整体异或就好了。 对于排序,我们考虑对所有排好序的节点建$trie$树,这样即使有全局异或标记,我们也可以在$tri ...
分类:
其他好文 时间:
2019-06-26 19:10:07
阅读次数:
122
摆渡车这题是真的毒瘤,放在普及组里是真的皮 思路一: 记忆化搜索 1.先把到达的时间从小到大排序 2.记忆化搜索的实现方法开 $f[max]$数组,$f[i]$表示车在第$i$分钟可以出发,此时已经积累的最少的等车时间利用前缀和初始化一下f数组,注意f数组要先弄成一个很大的数防止记忆化搜索的时候瞎j ...
分类:
其他好文 时间:
2019-06-26 10:53:13
阅读次数:
119
https://oj.gxu.edu.cn/contest/7/problem/D 描述 有一个所有元素皆为0的数组A,有两种操作: 1 l r x表示将A区间[l,r]内所有数加上x; 2 l r表示将A区间[l,r]内从左往右数第i个数加上i; 给出m个操作,请输出操作结束后A中的最大值。 输入 ...
分类:
其他好文 时间:
2019-06-23 17:37:10
阅读次数:
101