随笔分类 - 算法-其他
摘要:分治的基本思路: (1)划分问题:把问题的实际化为子问题; (2)递归求解:递归解决子问题; (2)合并问题:合并子问题得解. 举例: 1.给定一个数列,其中可能有正数也可能有负数,找出其中连续的一个子数列(不允许空序列),使它们的和尽可能大。 解法: 我们可以把整个序列平均分成左右两部分,答案则会
阅读全文
摘要:所谓前缀和就是前n个数的总和,预处理以后可以通过b[r]-b[l-1]得出由l到r的值。 1.一维前缀和 比较简单不多赘述。 代码: 1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 int main() { 6 int a[100],
阅读全文
摘要:RMQ(区间最值查询)是指这样一个问题:给定一个数组 ,其中有N个数字,给定区间[l ,r],询问在这个区间内的最值。 这种的解决方法:暴力,线段树(效率较低) 所以我们给出一种效率较高的算法:st算法,该算法能在O(nlogn)的预处理后达到O(1)的查询效率。 核心思路: 1.预处理(dp):
阅读全文

浙公网安备 33010602011771号