题意:给一个整数序列(可能有负数),求最短的连续序列使得序列之和大于等于整数x;
解法:第一种是On的复杂度:
                  我们要的是sum[j]-sum[i]>=x,如果有两个决策j = sum[j'],那么j就是没用的。即维护一个sum[j]递增序列。然后每次可以二分查找,但是这里有个特点就是要得到最近的,可以同时维护一个left指针,left指针用于跟进更...
                            
                            
                                分类:
其他好文   时间:
2014-05-15 03:20:26   
                                阅读次数:
303
                             
                    
                        
                            
                            
                                题意:求长度不超过K的最大的连续序列的和
思路:采用单调队列,我们要求的是Max{sum[i]-sum[j]}(i-j#include 
#include 
#include 
#include 
using namespace std;
const int MAXN = 1000005;
const int INF = 0x3f3f3f3f;
int n,k;
int arr[MAXN],s...
                            
                            
                                分类:
其他好文   时间:
2014-05-09 01:57:07   
                                阅读次数:
264
                             
                    
                        
                            
                            
                                题目题意:求任意连续序列的最大值,这个连续序列可以和其他的 
值交换k次,求最大值思路:暴力枚举所有的连续序列。没做对是因为 
首先没有认真读题,没看清交换,然后,以为是dp或者贪心用了一下贪心,各种bug不对。这次用了一下优先队列,以前用的不多,看这个博客又学了一下AC代码: 1 
#include ....
                            
                            
                                分类:
其他好文   时间:
2014-04-29 17:14:46   
                                阅读次数:
432
                             
                    
                        
                            
                            
                                这道题中要求时间复杂度为O(n),首先我们可以知道的是,如果先对数组排序再计算其最长连续序列的时间复杂度是O(nlogn),所以不能用排序的方法。我一开始想是不是应该用动态规划来解,发现其并不符合动态规划的特征。最后采用类似于LRU_Cache中出现的数据结构(集快速查询和顺序遍历两大优点于一身)来...
                            
                            
                                分类:
其他好文   时间:
2014-04-28 10:21:19   
                                阅读次数:
1003