题意:给你 n 个正整数以及整数s,求出总和不小于 s 的连续子序列的长度最小值。若无则输出 0 ;题解:尺取法; 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #inclu...
分类:
其他好文 时间:
2015-01-09 20:52:50
阅读次数:
210
给定长度为n的数列整数a0,a1……an-1 以及整数S。求出总和不小于S的连续子序列的长度的最小值。如果解不存在,则输出0。输入 n=10S=15a=[5,1,3,5,10,7,4,9,2,8]输出2 [5,10]function solve(){ var res=n+1; var s...
分类:
编程语言 时间:
2015-01-05 18:22:54
阅读次数:
262
一开始以为死于精度……调了半天发现死于long long……一、二分法:#include#include#includeusing namespace std;bool cmp(const int &a,const int &b){return a>b;}int n,a[100001],b[1000...
分类:
其他好文 时间:
2014-12-15 16:53:17
阅读次数:
144
Face The Right Way
Time Limit: 2000MS
Memory Limit: 65536K
Total Submissions: 2721
Accepted: 1246
Description
Farmer John has arranged his N (1 ≤ N ≤ 5,000) cows in...
分类:
其他好文 时间:
2014-11-06 17:32:23
阅读次数:
212
题目链接:http://poj.org/problem?id=3320题目大意:一本书有P页,每页有个知识点,知识点可以重复。问至少连续读几页,使得覆盖全部知识点。解题思路:知识点是有重复的,因此需要统计不重复元素个数,而且需要记录重复个数。最好能及时O(1)反馈不重复的个数。那么毫无疑问,得使用H...
分类:
其他好文 时间:
2014-11-03 01:17:36
阅读次数:
210
O(n)地枚举所有长度为k的段,每次暴力转移。转移的时候只是从最后插入一个数,从前面删去一个数。计算的时候要取当前的max和min。用multiset(∵元素是可重的)以上这些操作都是O(logn)的。 1 #include 2 #include 3 using namespace std; 4 m...
分类:
其他好文 时间:
2014-10-31 07:41:33
阅读次数:
270
先是看了一下讲解 ,选取 了二分法 ,由于数列都是正数的特殊情况,每一个sum【i】+s 对应一个最小的连续序列,最后只要减掉sum【i】就可以,lower_bound刚好可以用来查找最小的sum【i】+i,算法复杂度(nlogn),另外还有一种尺取法,复杂度只有n,大意是设置t,s两个节点,不断加减来更新res的最小值
下面是ac过的法一代码**************************...
分类:
其他好文 时间:
2014-10-15 21:17:18
阅读次数:
182
二分+前缀和法
满足条件的子序列长度在(0,n)之间,sum[x+i]-sum[i]为从从第i个元素开始序列长度为x的元素的和。前缀和可在O(n)的时间内统计
sum[i]的值。再用二分找出满足条件的最小的子序列长度。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2014-10-15 00:09:19
阅读次数:
251
https://oj.leetcode.com/problems/minimum-window-substring/线性复杂度的限制下,考虑使用滑动窗口法。这个方法的思路就是维持一个窗口,窗口向右边界扩张以满足限制条件。窗口左边界收缩以尽量使其最小。注意这个题目可能是一个典型的滑动窗口方法的实现。外...