队列
蓝鲸
这个作者很懒,什么都没留下…
展开
-
《算法竞赛进阶指南》最大子序和
最大子序和输入一个长度为n的整数序列,从中找出一段长度不超过m的连续子序列,使得子序列中所有数的和最大。注意: 子序列的长度至少是1。输入格式第一行输入两个整数n,m。第二行输入n个数,代表长度为n的整数序列。同一行数之间用空格隔开。输出格式输出一个整数,代表该序列的最大子序和。数据范围1≤n,m≤300000输入样例:6 41 -3 5 1 -2 3输出样例:7求取自序和(或子串和)我们首先想到的是利用前缀和数组求取,当我们利用前缀和数组可以求取最大的一个自序和,但不能保证原创 2020-07-07 16:04:50 · 784 阅读 · 0 评论 -
《算法竞赛进阶指南》 双端队列
双端队列达达现在碰到了一个棘手的问题,有N个整数需要排序。达达手头能用的工具就是若干个双端队列。她从1到N需要依次处理这N个数,对于每个数,达达能做以下两件事:1.新建一个双端队列,并将当前数作为这个队列中的唯一的数;2.将当前数放入已有的队列的头之前或者尾之后。对所有的数处理完成之后,达达将这些队列按一定的顺序连接起来后就可以得到一个非降的序列。请你求出最少需要多少个双端序列。输入格式第一行输入整数N,代表整数的个数。接下来N行,每行包括一个整数Di,代表所需处理的整数。输出格式输原创 2020-07-06 14:33:56 · 421 阅读 · 0 评论