"Link" 题意: 定义 $S_b(n)$ 是 $b$ 进制下 $n$ 的数位和 已知 $N$ 和 $b$ 求 $\sum_{n=1}^{N}{S_b(n)}$ 思路: 因为测试数据很多,所以要预处理前缀和 $S_b(n)=S_b(n/b)+n\%b \Longrightarrow sum[b][ ...
分类:
其他好文 时间:
2020-03-03 17:33:14
阅读次数:
64
"题目链接" 题意: 给定每个边的权值,每次求u,v两点的距离。 题解: 把每个边上的权值给挂到每条边的儿子节点下面,跑一边树上前缀和自顶向下模板,没了。 裸的树上前缀和模板 但要注意:DFS中邻接表中前缀和的变量不能打错了 Code: ...
分类:
其他好文 时间:
2020-03-03 13:07:50
阅读次数:
44
传送门 这道题显然可以用PAM做出来。 PAM可以算出以字符串的第ii个字符为结尾的回文子串的个数。我们将其存到一个数组l[n],再求一个前缀和就可以把字符串的前i个字符的前缀有多少个回文子串求出来。 然后,我们将PAM清空,倒着做一遍,就可以求出以第i个字符为左端点的回文子串个数r[i]。与它不相 ...
分类:
其他好文 时间:
2020-03-02 12:50:53
阅读次数:
54
题目地址 给定一个只含有abc的字符串,要求包含abc分别各一个的子串个数。 预处理每种字符前缀和,枚举子串左端点,二分查找满足条件的右端点,三个字符取最大的,直接计数。 双指针。 code1 code2 ...
分类:
其他好文 时间:
2020-03-02 11:12:20
阅读次数:
48
Solution 第一问二分模板题,利用第一问答案做第二问 $O(n^2m)$ 的 dp 是显然的,考虑用前缀和优化,用双指针预处理出转移位置的边界,于是每次转移复杂度 $O(1)$,总体复杂度 $O(nm)$ ...
分类:
其他好文 时间:
2020-03-01 14:40:19
阅读次数:
64
这是我斜率DP第一个没有一遍AC的,原因是第一遍忘开long long了。 这一题比较特殊,细心的同学一定发现了,递推式不带f。 为了方便,设d数组的后缀和为sd[i]=sd[i+1]+d[i],设k数组的前缀和为sk[i]=sk[i-1]+k[i](k[i]即是题目中的w[i]) 设f[i]为第二 ...
分类:
其他好文 时间:
2020-03-01 00:26:54
阅读次数:
69
# 一维前缀和 S[i] = a[1] + a[2] + ... a[i][l,r]区间的和 = a[l] + ... + a[r] = S[r] - S[l - 1] # 二维前缀和 S[i, j] = 第 i 行、第 j 列格子左上部分所有元素的和 计算:s[i][j] = s[i-1][j] ...
分类:
其他好文 时间:
2020-02-28 21:04:51
阅读次数:
57
D 给你一个长度为n的括号序列,然后你可以选择交换两个位置,你需要使得能够变成 合法括号序列的起点最多。 题解 人尽皆知的东西:合法的括号序列是,令'('为1,')'为-1,那么前缀和需要>=0,且最后的总和应该为0. 假设现在已经是交换好的序列了,那么答案个数,就是前缀和的最小值的个数。这是因为最 ...
分类:
其他好文 时间:
2020-02-28 13:39:50
阅读次数:
43
有一类求一段区间内所有数字的和的问题,以前我是用前缀和数组解决的。今天遇到了二维的树状数组,发现它的代码非常优美,就把这两者一起写一写吧。1. 一维前缀和数组假设共有n个数字,我们把它们存放在a数组中12for (int i=1;i>a[i];然后,我们用sum[i]表示a[1]+a[2]+…+a[... ...
分类:
编程语言 时间:
2020-02-28 12:00:49
阅读次数:
54
# 支持的操作 1)快速求前缀和 O(log n) 2) 修改某一个数 O(logn) # 原理 原数组的长度为x的话,x的二进制为(下标从 1 开始) x = 2i1+2i2+2i3+.......+2im 那么按照x的二进制可以讲区间划分为 log x 个区间。分别为 [ x-2i1+1 +1 ...
分类:
编程语言 时间:
2020-02-28 01:06:07
阅读次数:
66