<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      書(shū)山有徑勤為路>>>>>>>>

      <<<<<<<<學(xué)海無(wú)涯苦作舟!

      單調(diào)隊(duì)列

       隊(duì)列,從一頭進(jìn)入,從另一頭刪除的數(shù)據(jù)結(jié)構(gòu)。

      第一步:初始化
      |_|
      |_|
      |_|
      |_|
      |_|
      |_| t=h=0

      第二步:從隊(duì)尾加入一個(gè)元素8

      |_|
      |_|
      |_|
      |_|
      |8| t=1
      |_| h=0

      第三步:從隊(duì)尾刪除一個(gè)元素

      |_|
      |_|
      |_|
      |_|
      |8|
      |_| t=h=0

      在這里雖然8仍然存在,但是由于t=0,所以下次如果在加入一個(gè)元素會(huì)將其覆蓋掉,所以我們認(rèn)為t--,就是對(duì)數(shù)據(jù)的刪除

       

      隊(duì)列的典型的題目是:poj 2823 http://poj.org/problem?id=2823

      代碼如下:

      View Code
      #include <stdio.h>
       #include <string.h>
       #include <iostream>
       using namespace std;
       
       #define N 1000010
       
       struct node{
           int m, d;
       }Inc[N], Dec[N];
       
       int mi[N], mx[N], k;
       
       bool cmpMAX(const int &a, const int &b){ return a>b; }
       bool cmpMIN(const int &a, const int &b){ return a<b; }
       
       void chk(int i, int &head, int &tail, node c[], bool cmp(const int &a, const int &b), int num)
       {                        //添加新節(jié)點(diǎn)到隊(duì)尾,并刪掉過(guò)期的頭節(jié)點(diǎn)
           while(tail >= head && cmp(c[tail].m, num)) tail--;
           c[++tail].m = num;
           c[tail].d = i;
           while(cmpMAX(i-c[head].d+1, k)) head++;//更新了一下head,如果保存的不在可視框內(nèi),則不應(yīng)該考慮,否則wa
       }
       void solve()
       {
           int n, i, j, id=0, num;
           int head_I=0, tail_I=0, head_D=0, tail_D=0;
       
           scanf("%d%d", &n, &k);
           if(n>0 && k>=1)        //初始化化隊(duì)列里的第一個(gè)點(diǎn)
           {
               scanf("%d", &num);
               Inc[0].m = Dec[0].m = num;
               Inc[0].d = Dec[0].d = 0;
           }
           for(i=1; i<k; i++)    //初始化視窗中的點(diǎn): 加入隊(duì)列
           {
               scanf("%d", &num);
               chk(i, head_I, tail_I, Inc, cmpMIN, num);
               chk(i, head_D, tail_D, Dec, cmpMAX, num);
           }
           mi[id] = Inc[head_I].m;
           mx[id++] = Dec[head_D].m;
           for(; i<n; i++)        //添加并更新
           {
               scanf("%d", &num);
               chk(i, head_I, tail_I, Inc, cmpMIN, num);
               chk(i, head_D, tail_D, Dec, cmpMAX, num);
               mi[id] = Inc[head_I].m;
               mx[id++] = Dec[head_D].m;
           }
           printf("%d", mx[0]);
           for(i=1; i<id; i++) printf(" %d", mx[i]);
           printf("\n%d", mi[0]);
           for(i=1; i<id; i++) printf(" %d", mi[i]);
           printf("\n");
       }
       
       int main()
       {
           solve();
           return 0;
       }

       

       

       

      posted on 2012-08-14 16:57  More study needed.  閱讀(168)  評(píng)論(0)    收藏  舉報(bào)

      導(dǎo)航

      書(shū)山有徑勤為路>>>>>>>>

      <<<<<<<<學(xué)海無(wú)涯苦作舟!

      主站蜘蛛池模板: 少妇被日自拍黄色三级网络 | 欧美日韩免费专区在线观看 | 大陆一级毛片免费播放| 色欲国产精品一区成人精品| 久久99热成人精品国产| 中文国产日韩欧美二视频| 无码无需播放器av网站| 无码乱人伦一区二区亚洲一 | 国色天香成人一区二区| 麻豆久久天天躁夜夜狠狠躁| 国产a在视频线精品视频下载| 国产成人无码AV片在线观看不卡| 久久一本人碰碰人碰| 亚洲欧洲av一区二区久久| 成人午夜激情在线观看| 国产成人综合95精品视频| 亚洲综合小综合中文字幕 | 国产在线无遮挡免费观看| 精品久久久久久无码免费 | 亚洲综合成人av在线| 日本熟妇色xxxxx| 免费超爽大片黄| 无码av最新无码av专区| 亚洲av日韩av中文高清性色| 中国亚洲女人69内射少妇 | 中文字幕 欧美日韩| 国产乱码精品一区二区三| 亚洲精品乱码久久久久久蜜桃 | 成全影视大全在线观看| 中文字幕日韩精品无码内射| 亚洲国产精品一二三区| 国产三级精品片| 婷婷精品国产亚洲av在线观看 | 最近中文国语字幕在线播放| 国产精品无码a∨麻豆| 茌平县| 国产精品一区久久人人爽| 日韩精品无码区免费专区 | 野花香视频在线观看免费高清版 | 在线一区二区中文字幕| 佛学|