青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

bon

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  46 Posts :: 0 Stories :: 12 Comments :: 0 Trackbacks

常用鏈接

留言簿(2)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

pku 2833
給出n個數字,n <= 5000000,要求去掉最大的n1個數和最小的 n2 個數,求剩下的數的平均值。
題目要求不能存儲完所有的n個數再統計,所以要隨著輸入來動態統計。

思路:
設已輸入最大的n1個數和最小的 n2 個數。剩下的數有n-n2-n1個。每輸入一個數 x ,都維護這個invariance,則算法結束時就得到題目要求的結果:
                        avg=((avg*cnt)+a)/(cnt+1), cnt=cnt+1
其中a這樣定義:若x小于n2個數中的最大值amax,則x與amax交換,且a為amax;否則若x大于n1個數中的最小值amin,則x與amin交換,且a為amin;否則a就為x。

這樣我們就動態地維護了兩個數組:一個是當前已輸入的數中的最大的n2個,另一個為當前已輸入的數中最小的n1個,且avg是當前的答案。這個invariance一直維護到算法結束就得到結果。

雖然這里的思想很簡單,但是維護invariance這種證明思路是Introduction to Algorithms中常用的。

回到題目,我用兩個堆(一個大頂堆一個小頂堆)分別維護兩個數組,每次輸入一個新的數(假設前面的n1 + n2 個已輸入),就按上面的思路來維護。這里的n1  n2 都比較小,所以堆的效果可能不是很明顯。

 1 
 2 #include <iostream>
 3 #include <algorithm>
 4 //#include <set>
 5 
 6 using namespace std;
 7 
 8 long i,j,k;
 9 int m,l,n;
10 double a[110],b[110];// 存儲最大的m個數,與存儲最小的l個數
11 int ca,cb;        //a,b存儲了多少數字
12 
13 // 插入x并返回堆頂元素
14 void insert_mx_heap(int x)
15 {
16     a[++ca]=x;
17     int cur=ca;
18     while(cur>1 && a[cur]<a[cur>>1]){
19         int tmp=a[cur>>1];
20         a[cur>>1]=a[cur];
21         a[cur]=tmp;
22         cur=cur>>1;
23     }
24 }
25 
26 void insert_mn_heap(int x)
27 {
28     b[++cb]=x;
29     int cur=cb;
30     while(cb>1 && b[cur]>b[cur>>1]){
31         int tmp=b[cur>>1];
32         b[cur>>1]=b[cur];
33         b[cur]=tmp;
34     }
35 }
36 
37 void siftdown_mx(int x)
38 {
39     a[1]=x;
40     int cur=1;
41     while((cur<<1)<=ca){
42         int j=cur<<1;
43         if((j+1)<=ca && a[j+1]<a[j]) j++;
44         if(a[j]>a[cur]) break;
45         int tmp=a[cur];
46         a[cur]=a[j];
47         a[j]=tmp;
48         cur=j;
49     }
50 }    
51 
52 void siftdown_mn(int x)
53 {
54     b[1]=x;
55     int cur=1;
56     while((cur<<1)<=cb){
57         int j=cur<<1;
58         if((j+1)<=cb && b[j+1]>b[j]) j++;
59         if(b[j]<b[cur]) break;
60         int tmp=b[cur];
61         b[cur]=b[j];
62         b[j]=tmp;
63         cur=j;
64     }
65 }
66 
67 int main()
68 {
69     //freopen("in.txt","r",stdin);
70     while(scanf("%d%d%ld",&m,&l,&n) && n!=0)
71     {
72         ca=cb=0;
73         int in;
74         double avg=0;
75         int cnt;
76         int tmp[21];
77         for(i=0;i<m+l;i++) scanf("%d",&tmp[i]);
78         sort(tmp,tmp+m+l);
79         for(i=0;i<l;i++) insert_mn_heap(tmp[i]);
80         for(i=l;i<m+l;i++) insert_mx_heap(tmp[i]);
81         // 開始輸入
82         cnt=0;
83         for(i=m+l;i<n;i++){
84             scanf("%d",&in);
85             // in大于最大組中最小值
86             if(in>a[1]){
87                 avg=(avg*cnt+a[1])/(++cnt);
88                 siftdown_mx(in);
89             }else if(in<b[1]){
90                 avg=(avg*cnt+b[1])/(++cnt);
91                 siftdown_mn(in);
92             }else{
93                 avg=(avg*cnt+in)/(++cnt);
94             }
95         }
96         printf("%.6lf\n",avg);
97     }
98     return 1;
99 }
posted on 2008-03-21 16:59 bon 閱讀(339) 評論(0)  編輯 收藏 引用 所屬分類: Programming Contest

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


Google PageRank 
Checker - Page Rank Calculator
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美综合国产精品一区| 一本久道久久综合狠狠爱| 欧美伊人精品成人久久综合97| 在线午夜精品自拍| 国产精品美女在线| 久久精品99国产精品日本| 亚洲免费影视| 黄色av成人| 亚洲激情在线观看视频免费| 欧美精品二区三区四区免费看视频| 一本在线高清不卡dvd | 在线不卡免费欧美| 欧美激情视频网站| 国产精品久久久久av免费| 欧美一区二区三区播放老司机| 欧美呦呦网站| 99亚洲精品| 欧美亚洲日本网站| 亚洲激情欧美激情| 一区二区欧美视频| 精品盗摄一区二区三区| 亚洲欧洲精品成人久久奇米网 | 欧美主播一区二区三区美女 久久精品人 | 亚洲欧美日韩中文视频| 一区二区三区无毛| 日韩一级免费| 1769国产精品| 亚洲淫片在线视频| 亚洲日本电影在线| 久久99伊人| 亚洲天堂免费观看| 美女网站久久| 久久久久久久久久码影片| 欧美国产免费| 欧美69视频| 国产亚洲欧美aaaa| 在线亚洲精品| 亚洲毛片av| 久久人体大胆视频| 欧美一区二区在线免费观看 | 香蕉成人啪国产精品视频综合网| 亚洲精品一二三| 欧美一区视频| 欧美亚洲网站| 欧美日韩综合另类| 亚洲国产精品专区久久| 狠狠色丁香婷综合久久| 亚洲一区二区三区四区视频| 亚洲免费av网站| 久久综合亚洲社区| 久久综合九色欧美综合狠狠| 国产精品美女久久久浪潮软件 | 91久久久久久久久| 亚洲高清不卡一区| 久久网站免费| 六月婷婷久久| 激情欧美日韩一区| 久久本道综合色狠狠五月| 午夜亚洲性色福利视频| 欧美午夜在线| 亚洲色图在线视频| 亚洲免费在线视频| 国产精品99免费看 | 中日韩高清电影网| 99re66热这里只有精品3直播| 久久久综合网站| 欧美fxxxxxx另类| 亚洲第一毛片| 欧美jizzhd精品欧美巨大免费| 欧美国产精品久久| 亚洲肉体裸体xxxx137| 欧美韩国一区| 日韩亚洲欧美一区二区三区| 亚洲婷婷在线| 国产精品一二三视频| 亚洲欧美日韩一区二区| 久久婷婷成人综合色| 精品不卡视频| 欧美激情一区二区三区不卡| 亚洲精品国久久99热| 亚洲一级特黄| 国产一区二区精品久久99| 久久久亚洲欧洲日产国码αv| 欧美成年人视频网站| 亚洲美女91| 国产精品美腿一区在线看| 久久超碰97中文字幕| 欧美高清视频一区| 亚洲天堂网在线观看| 国产精品婷婷午夜在线观看| 欧美在线观看日本一区| 欧美黄色一级视频| 亚洲欧美日韩综合| 精品69视频一区二区三区| 欧美高清视频在线| 亚洲免费视频中文字幕| 免费久久99精品国产自| 一区二区三区视频在线| 国产亚洲制服色| 欧美精品v日韩精品v韩国精品v | 午夜精品网站| 亚洲成人在线视频播放 | 久久精选视频| 亚洲国产人成综合网站| 欧美网站在线| 免费人成精品欧美精品| 亚洲女同在线| 亚洲激情二区| 美乳少妇欧美精品| 午夜精品久久久久99热蜜桃导演| 亚洲风情在线资源站| 国产精品一区二区在线观看网站| 欧美ab在线视频| 久久狠狠久久综合桃花| 在线亚洲国产精品网站| 亚洲国产裸拍裸体视频在线观看乱了 | 99精品国产99久久久久久福利| 国产日韩精品一区二区三区| 欧美精品123区| 久久久久久久久岛国免费| 亚洲天堂男人| 亚洲三级色网| 亚洲第一精品夜夜躁人人爽| 久久精品人人爽| 亚洲欧美综合另类中字| 一区二区三区高清不卡| 亚洲精品国产系列| 亚洲第一免费播放区| 黄网站色欧美视频| 国产一区二区三区不卡在线观看 | 模特精品在线| 久热精品在线视频| 久久久97精品| 久久精品综合网| 久久av最新网址| 欧美综合国产| 久久精品国产99| 欧美在线免费一级片| 香蕉久久精品日日躁夜夜躁| 亚洲一区二区三区中文字幕| 亚洲午夜精品国产| 亚洲自拍都市欧美小说| 亚洲一级电影| 午夜精品久久久久久99热软件| 亚洲欧美一级二级三级| 亚洲欧美日韩电影| 欧美一区二区播放| 久久精品亚洲一区二区| 久久久久久久久久久一区| 久久―日本道色综合久久| 久久久中精品2020中文| 免费久久久一本精品久久区| 欧美成年人视频| 欧美日产在线观看| 国产精品女主播| 国产日韩欧美综合一区| 一区二区在线不卡| 亚洲人成人77777线观看| 亚洲精品一区二区在线| 一区二区三区国产在线| 午夜在线观看欧美| 美女国产精品| 亚洲精品国产精品久久清纯直播| 99综合在线| 欧美伊人久久久久久久久影院| 久久久国产一区二区| 欧美激情国产精品| 国产精品日韩精品| 伊人成综合网伊人222| 夜夜嗨av一区二区三区中文字幕| 亚洲欧美成人精品| 男人的天堂亚洲在线| 日韩亚洲欧美中文三级| 久久精品国产久精国产思思| 欧美a级一区| 国产精品久久毛片a| 在线观看日韩av先锋影音电影院| 日韩视频免费观看| 欧美有码在线视频| 亚洲国产专区校园欧美| 亚洲一区日韩在线| 美日韩精品视频| 国产精品自在欧美一区| 亚洲欧洲综合| 欧美在线视频在线播放完整版免费观看| 牛牛影视久久网| 亚洲在线一区二区三区| 欧美成人福利视频| 国产专区综合网| 亚洲影院在线观看| 亚洲国产精品一区二区第四页av| 香蕉免费一区二区三区在线观看 | 久久一本综合频道| 国产精品入口麻豆原神| 亚洲精品色婷婷福利天堂| 久久国产精品久久久久久| 亚洲精品综合在线| 久热国产精品视频| 韩日精品在线| 久久精品视频免费播放|