特殊算法技巧
文章平均质量分 68
acm
Clarence Liu
https://github.com/ComingCL
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2021 Jiangxi Provincial Collegiate Programming Contest G题Magic Number Group - 莫队求区间质因子出现最多的次数
问题很直观,因为一个数的质因子个数很少,而且数字个数和查询次数都是10410^4104级别,所以考虑直接莫队暴力此题可以练练莫队的写法,使用两个数组分别记录每个质因子的出现次数和出现次数为iii的质因子数量,方便统计答案,每当查询的时候,注意左右端点的移动对这两个数组的影响实测采用基本的排序方式也就是左端点按块从小到大,如果相同则按右端点从小到大排序即可通过;但是如果使用优化的排序方式即左端点所在块为奇数按右端点从小到大(同为奇数则按照块的顺序从小到大),否则按照右端点从大到小这种排序方式能快80ms.原创 2022-03-16 01:09:11 · 394 阅读 · 0 评论 -
洛谷P1163 二分
链接这道题不会的肯定是不知道他这2.9怎么算的,确实有点奇怪,一般来讲如果求出来年利率,那么月利率就是年利率/12,那么对于这道题应该就是年利息为200元,那么利率就是2001000=0.2\dfrac{200}{1000} = 0.21000200=0.2但是0.212=0.01667\dfrac{0.2}{12} = 0.01667120.2=0.01667显然和样例这个数没什么关系那么问题究竟出现在哪里?看一下题目,这里面有这样一句话:假设利率按月累计。那么也就是说他这利息是一个月一个月这样原创 2021-02-11 19:26:52 · 400 阅读 · 2 评论 -
二分答案
目录引子概念练习练习一练习二引子有这样一个问题:题目链接给出一个长度为N的正整数数组,不改变数组元素的顺序,将这N个数分为K组。各组中元素的和分别为S1,S2…Sk。如何分组,使得S1至Sk中的最大值最小?例如:1 2 3 4 5 6分为3组,{1 2 3} {4 5} {6},元素和为6, 9, 6,最大值为9。也可以分为{1 2 3 4} {5} {6}。元素和为:10 5 6,最大值为10。因此第一种方案更优。并且第一种方案的最大值是所有方案中最小的。输出这个最小的最大值。 读过问题发现这原创 2020-12-20 14:23:17 · 785 阅读 · 1 评论 -
二维前缀和和二维差分
二维前缀和 二维差分原创 2021-10-01 23:26:40 · 409 阅读 · 0 评论 -
LIS-最长上升子序列
最长上升子序列(Longest Increasing Subsequence) 也称LIS我们首先要明确子序列和子串的区别,子序列可以不连续,子串必须连续举一个例子:1 5 7 0 4 5 6 1 2我们来找一下它的最长上升子序列,1,5,7这是一个,而且没有比7大的,说明以7结尾的子序列最长就是3;那么7不能是最后面的,我们又看到了6,所以1,5,6这又是一个,长度为3这样6也用过了,那么5也不能再用,所以我们看到1,4,5,6这个子序列长度是最长的为4在上面的例子中可以看出,这个子序原创 2020-12-31 14:09:34 · 222 阅读 · 0 评论 -
尺取法(双指针)及例题
尺取法方法引入方法总结具体问题模板题最大子段和方法引入有一组数,现在给定一个数k,问这组数中两个数加和为k的情况有多少?考虑暴力,显然可以使用两个for循环,时间复杂度为O(n2),对于n在104以上的数据无法在规定时间内得到答案,需要寻找更好的方法因为顺序不影响答案,所以考虑先排个序,要的是两个数加和,所以需要两个指针,分别指向这两个数,可以把两个指针分别指向数组头和尾,如果两个数加和比k大,那么显然需要将尾指针向前移动一位;如果比k小,显然需要将头指针向后移动一位;相等的时候即为答案#in原创 2021-01-23 14:21:32 · 462 阅读 · 0 评论
分享