pku 2823 Sliding Window 赤裸裸的单调队列,G++还TLE,C++5S不到。。orz

不解释了,求固定长度的区间最大值和最小值,单调队列即可。。
 1 # include <cstdio>
 2 //# include <iostream>
 3 using namespace std;
 4 const int N=1000005;
 5 int data[N],q[N],s=-1,e=-1;
 6 int main()
 7 {
 8     int n,k;
 9     scanf("%d%d",&n,&k);
10     for(int i=0;i<n;i++)
11       scanf("%d",data+i);
12     for(int i=0;i<n;i++)
13     {
14        while(s!=e&&i-q[s+1]>=k) s++;
15        while(s!=e&&data[q[e]]>=data[i]) e--;
16        q[++e]=i;
17        if(i>=k-1) printf("%d%c",data[q[s+1]],i!=n-1?' ':'\n');
18     }
19     s=e=-1;
20     for(int i=0;i<n;i++)
21     {
22        while(s!=e&&i-q[s+1]>=k) s++;
23        while(s!=e&&data[q[e]]<=data[i]) e--;
24        q[++e]=i;
25        if(i>=k-1) printf("%d%c",data[q[s+1]],i!=n-1?' ':'\n');
26     }
27    // system("pause");
28     return 0;
29     
30 }
31 


posted on 2010-11-08 23:54 yzhw 阅读(166) 评论(0)  编辑 收藏 引用 所属分类: data struct


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年11月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

公告

统计系统

留言簿(1)

随笔分类(227)

文章分类(2)

OJ

最新随笔

搜索

积分与排名

最新评论

阅读排行榜