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

Why so serious? --[NKU]schindlerlee

2010年02月13日星期六.sgu203 二叉堆

2010年02月13日星期六.sgu203 二叉堆
sgu203:堆,根據一個文章生成單詞出現次數,求對這個文章進行霍夫曼編碼之后的文章長度。

我郁悶,這個題想了半天,想了一個構建二叉樹,然后記錄葉子節點深度,之后用最大深度減去這
個深度的方法。不過,我自己都覺得這個應該過不了。。。

無意間看了一眼discuss,有一人的代碼寫了這么兩句
a = heap.pop(),b = heap.pop();
ans = ans + a + b;
一拍大腿,原來如此啊,我咋沒想到。。。

霍夫曼樹選擇兩個最小的加到新節點上,那么也就等于到這兩個小的節點的邊就被加到了新節點上。
也就是,隨著新節點的繼續累計,這個兩個節點的權并未丟失。

最后也就是,在拓展霍夫曼樹的時候,只要堆大小大于2,就累加最小的兩個點的值。

然后更囧的事發生了,我手寫的堆超時了。。。。。
我還用這個模板ac過pku3013,那個只能手寫堆才能過的dijkstra。
我記得我這個堆的寫法是自己想的,當初看過一個stl中的make_heap,pop_heap,push_heap的調用,在
http://support.microsoft.com/kb/157157/zh-cn
其中有幾行是這樣的

push_heap(Numbers.begin(), Numbers.end()) ;

// you need to call make_heap to re-assert the
// heap property
make_heap(Numbers.begin(), Numbers.end()) ;

現在一看,這幾句寫錯了啊。
push_heap之后再make_heap復雜度就不對了啊。

其實應該是在堆的末尾插入一個元素,沿著這個這個元素不斷上翻,達到維護堆的性質的目的,而不是調用
heapify().
可嘆阿,到今天才寫對第一個push_heap();
 1 
 2 
 3 const int N = 500100;
 4 #define L(x) ((x) << 1)
 5 #define R(x) (((x) << 1) + 1)
 6 #define P(x) ((x) >> 1)
 7 
 8 LL a[N],res; //a從1開始存儲
 9 int n;
10 
11 void heapify(int x)
12 {
13   int smallest = x,l = L(x),r = R(x);
14   if (l <= n && a[l] < a[smallest]) { smallest = l; }
15   if (r <= n && a[r] < a[smallest]) { smallest = r; }
16   if (smallest != x) {
17       swap(a[smallest],a[x]);
18       heapify(smallest);
19   }
20 }
21 
22 LL pop()
23 {
24   swap(a[1],a[n--]);
25   heapify(1);
26   return a[n+1];
27 }
28 
29 void make_heap()
30 {
31   for (int i = P(n); i >= 1; i--) {
32       heapify(i);
33   }
34 }
35 
36 void push(LL x)
37 {
38   int i = n+1;
39   for (a[++n] = x;i > 1 && a[P(i)] > x; i/= 2) {
40       a[i] = a[P(i)];
41   }
42   a[i] = x;
43 }
44 
45 int main()
46 {
47   int i,j,k;
48   scanf("%d",&n);
49   for (i = 1; i < n + 1; i++) {
50       scanf("%I64d",a + i);
51       //cin >> a[i];
52   }
53   make_heap();
54   while (n > 1) {
55       LL a = pop();
56       LL b = pop();
57       res += a + b;
58       push(a + b);
59   }
60   cout << res << endl;
61   return 0;
62 }
63 
64 


posted on 2010-02-13 02:20 schindlerlee 閱讀(1409) 評論(0)  編輯 收藏 引用 所屬分類: 解題報告

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久久久欧美| 欧美激情女人20p| 国产精品一卡| 欧美日韩一区二区三区四区五区| 91久久精品国产91久久性色tv| 久久精品水蜜桃av综合天堂| 欧美在线精品免播放器视频| 久久资源在线| 亚洲二区精品| 国产精品一区二区三区免费观看| 亚洲精品免费一二三区| 亚洲欧洲日韩在线| av成人免费在线| 亚洲一区三区电影在线观看| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 国产一区二区三区在线免费观看| 国产精品美女久久久久久久| 国产日韩欧美高清| 亚洲福利小视频| 在线天堂一区av电影| 久久精品综合网| 亚洲精品视频在线播放| 午夜久久久久| 蜜臀久久99精品久久久久久9| 欧美极品aⅴ影院| 国产专区综合网| 亚洲视频在线观看视频| 亚洲一级影院| 亚洲免费在线视频| 美日韩精品免费观看视频| 欧美特黄一级| 亚洲激情在线激情| 欧美专区18| 亚洲视频第一页| 欧美国产日韩一区二区三区| 国语自产精品视频在线看抢先版结局 | 中日韩男男gay无套| 9色porny自拍视频一区二区| 亚洲综合色在线| 欧美成人午夜免费视在线看片| 在线视频你懂得一区| 老司机午夜精品视频| 国产欧美日本在线| 亚洲一区日韩在线| 亚洲精品麻豆| 欧美韩日亚洲| 亚洲日本成人女熟在线观看| 欧美在线视频一区| 99亚洲精品| 国产亚洲欧洲997久久综合| 亚洲国产另类精品专区| 久久这里只有精品视频首页| 亚洲性av在线| 欧美日韩亚洲国产精品| 亚洲免费精彩视频| 亚洲国产另类 国产精品国产免费| 久久精品国产91精品亚洲| 国产乱人伦精品一区二区| 一本色道久久综合狠狠躁篇怎么玩 | 日韩西西人体444www| 欧美亚洲午夜视频在线观看| 欧美日韩中文字幕在线| 日韩一区二区精品在线观看| 亚洲夫妻自拍| 欧美高清视频一区二区| 亚洲黄色高清| 亚洲激情在线激情| 欧美另类女人| 亚洲国产网站| 男女av一区三区二区色多| 欧美激情视频一区二区三区在线播放 | 国产精品h在线观看| 亚洲视频在线观看视频| 在线视频你懂得一区| 国产精品一区二区男女羞羞无遮挡| 亚洲欧美资源在线| 欧美一区二区视频在线观看| 激情亚洲一区二区三区四区| 欧美成人国产一区二区| 欧美精品午夜视频| 欧美日韩一区二区在线观看| 一区二区电影免费观看| 欧美黄色小视频| 欧美伦理在线观看| 先锋影院在线亚洲| 午夜一区在线| 亚洲二区视频在线| 一区二区三区欧美成人| 国产亚洲一区二区三区在线观看| 久久精品国产亚洲一区二区| 久久精品99国产精品日本| 亚洲清纯自拍| 欧美国产一区二区| 99精品久久久| 欧美四级在线| 久久人人爽人人爽爽久久| 两个人的视频www国产精品| 亚洲精品偷拍| 午夜欧美理论片| 亚洲九九九在线观看| 亚洲在线视频免费观看| 在线免费观看欧美| 99国产精品视频免费观看| 国产原创一区二区| 亚洲剧情一区二区| 国产亚洲欧美在线| 99精品国产高清一区二区| 国语自产精品视频在线看8查询8| 亚洲国产一区二区三区a毛片 | 欧美成人小视频| 亚洲午夜未删减在线观看| 一区二区三区免费在线观看| 亚洲一区二区三区午夜| 国模私拍一区二区三区| 欧美国产精品va在线观看| 欧美日韩三区| 久久男人资源视频| 欧美日韩国产经典色站一区二区三区| 午夜视频一区二区| 黄色日韩在线| 亚洲激情在线视频| 国产日韩欧美不卡| 亚洲国产精彩中文乱码av在线播放| 欧美日韩免费视频| 麻豆精品精华液| 99国产精品久久久久老师 | 亚洲乱码精品一二三四区日韩在线 | 亚洲欧美国产精品专区久久| 亚洲精品在线二区| 欧美一区午夜精品| 欧美另类一区二区三区| 麻豆精品在线播放| 国产精品欧美久久久久无广告| 欧美高清一区二区| 国内精品视频在线播放| 亚洲一区二区三区四区五区黄| 亚洲国产一区二区三区青草影视| 欧美在线视频导航| 欧美亚洲在线| 国产精品久久久久秋霞鲁丝 | 亚洲午夜视频在线观看| 葵司免费一区二区三区四区五区| 亚洲欧美网站| 国产精品mv在线观看| 亚洲欧洲精品一区二区精品久久久| 国产精品一区=区| 午夜欧美大片免费观看| 欧美一区二区三区男人的天堂 | 亚洲理论在线观看| 久久久午夜视频| 久久午夜精品一区二区| 国产精品成人一区二区网站软件| 亚洲视频欧美视频| 亚洲欧美另类久久久精品2019| 欧美猛交免费看| 原创国产精品91| 久久国产综合精品| 欧美插天视频在线播放| 亚洲国产一区二区三区a毛片| 欧美aaaaaaaa牛牛影院| 亚洲欧美另类中文字幕| 欧美色精品天天在线观看视频| 亚洲精品国产无天堂网2021| 在线视频精品| 午夜精品一区二区三区在线视| 欧美日韩一区在线观看视频| 一本色道久久综合亚洲精品婷婷| 欧美一区二区三区婷婷月色| 欧美在线视频日韩| 亚洲国产精品va在线看黑人| 蜜臀av在线播放一区二区三区| 欧美风情在线观看| 亚洲最黄网站| 国产精品区一区二区三| 久久成人久久爱| 亚洲高清色综合| 欧美一区2区视频在线观看| 国产一区二区在线免费观看| 久久不射中文字幕| 亚洲精品1区| 久久大逼视频| 欧美天天在线| 亚洲伦理在线观看| 国产精品久久久久77777| 亚洲一区欧美| 免费精品99久久国产综合精品| 亚洲一区二区三区涩| 亚洲欧美国产不卡| 欧美大片国产精品| 亚洲欧美中文字幕| 亚洲国产精品视频一区| 欧美天堂亚洲电影院在线播放 | 久久精品成人| 亚洲午夜电影| 亚洲精品之草原avav久久| 午夜激情亚洲| 亚洲精品你懂的| 精品盗摄一区二区三区| 欧美日韩一区二区三区在线看| 久久av资源网站|