DP-TwoPoint
KIJamesQi
这个作者很懒,什么都没留下…
展开
-
uva1121 Subsequence(入门级)
给定一个长为N的序列和s,求一个最小的子序列使得sum(子序列)>= s; 思路:Twopoint,r维护加入,l维护减除,r-l+1就是这个结果,还要判断下是否存在这样的序列。 int a[100001]; int n, s; int main(int argc, const char * argv[]) { // freopen("in.txt","r",stdin);原创 2016-04-26 15:55:05 · 521 阅读 · 0 评论 -
uva11572 Unique Snow akes(入门级TwoPoint)
给定长度为N的序列,求最长的连续序列,这个序列中的数是不重复的。 思路:TwoPoint,r维护加入,l维护减除,因为数字较大,需要用map来做离散化。 const int maxn = 1000005; map mp; int a[maxn]; int n; int main() { //freopen("in.txt","r",stdin); //frepoen("out.原创 2016-04-26 16:19:22 · 784 阅读 · 0 评论 -
11536 Smallest Sub-Array(入门级TwoPoint)
先按照题目的意思把序列求出来。 最后就是用TwoPoint的思想了。 r表示入,l表示出。 每进入一了就mp[a[r]]++, 如果a[r] 当cat == k时,这个时候就要把里面的数往外拿了,直到序列为空或者是cnt int nCase = 0; const int maxn = 1000005; int mp[maxn];//Count[a, b] int a[maxn]; i原创 2016-04-26 16:55:59 · 572 阅读 · 0 评论