• <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>
            這一題題目有些長,不過這不影響它是一道水題。
            題意描述:
            題中描述了兩種情況,當(dāng)輸入數(shù)據(jù)以'P'開頭時,表示輸入的是1~N的一個排列,要求輸出每個數(shù)前面比該數(shù)大的數(shù)字的個數(shù),輸出結(jié)果時順序為數(shù)字1的在前,數(shù)字N的在最后。第二種情況正好相反,給出每個數(shù)字前面比該數(shù)大的數(shù)字的個數(shù),要求輸出原序列。
            第一種情況好說,主要是第二種情況。情況二的解法是按從后往前順序確定原序列,即先確定數(shù)字N的位置,再確定數(shù)字N-1的位置……直到所有數(shù)字位置確定。期間主要是元素的插入操作。

            posted @ 2012-08-02 16:19 小鼠標(biāo) 閱讀(246) | 評論 (0)編輯 收藏
            二分查找,是一種針對有序序列的查找方式,每次迭代會縮小一半的查找范圍,一次查找的時間復(fù)雜度為O(logN)。
            簡單說一下二分查找過程:在有序序列seq[]中找一個數(shù)n,假設(shè)這個序列的起始下標(biāo)分別為a,b,mid=(a+b)/2,那么n要么就是seq[mid](n=seq[mid]),要么在mid左邊(n<seq[mid]),要么在mid右邊(n>seq[mid]),要么這個數(shù)根本不在seq[]中。

            下面這道題是二分查找的典型應(yīng)用:
            zoj1101
            題意描述:在給定整數(shù)序列(<=1000)中找出四個不同的數(shù),使得三個數(shù)的和等于另外一個數(shù)。
            直接用四層循環(huán)鐵定超時,這里采用了一種拿空間換時間的方式。
            假設(shè)有a+b+d=c,這等價于a+b=c-d,我們可以把所有的a+b存起來(<=10^6個),把所有的c-d也存起來(<=10^6個),當(dāng)拿到每一個a+b時我們只需要在所有c-d的序列中查找就行了。先把c-d序列排序,排序時間復(fù)雜度O(NlogN),查找過程可以用二分,這樣就不會超時啦。
            以下是本題代碼:
            posted @ 2012-08-01 21:39 小鼠標(biāo) 閱讀(1077) | 評論 (0)編輯 收藏
            今天寫C代碼的時候用到了字符串結(jié)束標(biāo)記,猛然感覺有些陌生,索性復(fù)習(xí)一下C語言的轉(zhuǎn)義字符。
            轉(zhuǎn)義字符——當(dāng)然也是字符,引用的時候要加單引號。C語言中之說以會出現(xiàn)轉(zhuǎn)義字符,無非處于以下幾個原因:
            1.有些字符是不可見的,無法通過鍵盤輸入(比如換行符、回車符、響鈴等)。
            2.有些字符已經(jīng)有特殊的用途,無法直接引用(比如:'\',單引號、雙引號等)。
            3.使用轉(zhuǎn)義字符能夠使意圖更清楚(比如字符串結(jié)束標(biāo)志,我們更傾向于寫成'\0',而不是直接賦0值)。
            下表列出了C語言中所有的轉(zhuǎn)義字符:
            轉(zhuǎn)義字符 意義 ASCII碼值(十進(jìn)制)
            \a 響鈴(BEL) 007
            \b 退格(BS) ,將當(dāng)前位置移到前一列 008
            \f 換頁(FF),將當(dāng)前位置移到下頁開頭 012
            \n 換行(LF) ,將當(dāng)前位置移到下一行開頭 010
            \r 回車(CR) ,將當(dāng)前位置移到本行開頭 013
            \t 水平制表(HT) (跳到下一個TAB位置) 009
            \v 垂直制表(VT) 011
            \\ 代表一個反斜線字符''\' 092
            \' 代表一個單引號(撇號)字符 039
            \" 代表一個雙引號字符 034
            \0 空字符(NULL) 000
            \ddd 1到3位八進(jìn)制數(shù)所代表的任意字符 三位八進(jìn)制
            \xhh 1到2位十六進(jìn)制所代表的任意字符 二位十六進(jìn)制
            posted @ 2012-07-31 23:09 小鼠標(biāo) 閱讀(1732) | 評論 (0)編輯 收藏
            線段樹題,本題對線段樹的操作有建樹(MakeTree())、查找(Query())、更新(update())。
            建樹一次完成,時間花費為O(LogN);查詢的時間復(fù)雜度鄙人還不會分析O(∩_∩)O~,最壞可能是O(N),不過這種情況應(yīng)該很難出現(xiàn);更新的算法值得商榷,不同的策略時間復(fù)雜度會相差很大。下面講解兩種比較用以想到的更新策略。
            更新方法一:
            每次都將所有能更新的節(jié)點更新,這種方式最壞情況下將會更新樹中所有節(jié)點,此時時間復(fù)雜度為O(N)。本題使用這種方法會TLE。
            更新方法二:
            每次都盡量少的更新節(jié)點信息,與第一種方法相比,Node內(nèi)會多一個變量en,我把它形象的稱之為“勢能”,計算結(jié)果時要將該的所有父節(jié)點的“勢能”也考慮在內(nèi)。這種方法的時間復(fù)雜度也不好分析,但明顯優(yōu)于第一種方法。
            這一題對時間卡的很緊,主要是花在樹的更新上。
            關(guān)于線段樹可以先參閱:http://www.shnenglu.com/hoolee/archive/2012/07/29/185531.html
            以下是本題代碼:

            posted @ 2012-07-31 20:40 小鼠標(biāo) 閱讀(3656) | 評論 (0)編輯 收藏
            即使是沒有算法的題,也應(yīng)該想清楚了再寫,特別是關(guān)于字符串處理的,細(xì)節(jié)很多,稍不注意就會發(fā)生錯誤。
            下面這道題是經(jīng)典的“回文”題,要求輸出每句話中每個單詞的回文,但是單詞在句子中的位置不變。

            posted @ 2012-07-31 16:58 小鼠標(biāo) 閱讀(346) | 評論 (1)編輯 收藏

            徹底的水題,因為沒有說數(shù)據(jù)量,我把數(shù)組開小了,SF了四次,最后把數(shù)字串長

            度開到4000才過,真是坑爹啊。


            posted @ 2012-07-31 16:15 小鼠標(biāo) 閱讀(183) | 評論 (0)編輯 收藏
                 摘要: 這是我寫的第一道線段樹,思路還算清晰,不過之前走了不少彎路。主要錯在:誤以為線段樹是一棵滿二叉樹,建樹時吃了苦頭。//線段樹除了最后一層可能不滿足滿二叉樹性質(zhì)外,上面的所有層構(gòu)成完全二叉樹,因此仍然可以用滿二叉樹的性質(zhì):如果樹根節(jié)點從1開始編號,則對任意編號的節(jié)點t,左子樹編號為t*2,右子樹編號為t*2+1,父節(jié)點編號為t/2。這樣,建樹的時候節(jié)點內(nèi)就不用記錄兒子或父節(jié)點的信息了。下面結(jié)合poj...  閱讀全文
            posted @ 2012-07-29 10:44 小鼠標(biāo) 閱讀(1885) | 評論 (2)編輯 收藏
            科學(xué)家發(fā)明了一種新的生物,這種生物能夠兩兩合并,重量為m1的生物與重量為m2的生物合并后變?yōu)橐粋€生物,該生物的重量為2*sqrt(m1*m2)。求給定數(shù)量的生物合并成一個生物后的最小重量。
            貪心算法,每次選取重量最大的兩個生物合并成一個即可。下面的代碼是有優(yōu)先隊列(大頂堆)實現(xiàn)的。
            不過,深入分析一下,由數(shù)學(xué)公式可以證明:m1+m2 >= 2*sqrt(m1*m2),因此當(dāng)兩個生物合并后,重量一定是剩余生物中最大的,由此只要將原重量按降序排序一次,然后依次合并即可。
            優(yōu)先隊列有些大材小用了。

            posted @ 2012-07-21 22:22 小鼠標(biāo) 閱讀(806) | 評論 (0)編輯 收藏
                 摘要: 優(yōu)先隊列,其實我一直不愿承認(rèn)“優(yōu)先隊列”是一種“隊列”,現(xiàn)實世界的隊列(比如排隊)告訴我們,隊列最明顯的性質(zhì)就是先進(jìn)先出。而優(yōu)先隊列,似乎跟這個規(guī)則沒什么關(guān)系……  閱讀全文
            posted @ 2012-07-20 10:36 小鼠標(biāo) 閱讀(3317) | 評論 (0)編輯 收藏
                 摘要: 單調(diào)隊列,顧名思義就是具有單調(diào)性的隊列O(∩_∩)O~,一般的隊列只能從隊尾入隊、隊首出隊;為了保持單調(diào)隊列的單調(diào)性,單調(diào)隊列除具有這兩種性質(zhì)外,還可以從隊尾出隊……  閱讀全文
            posted @ 2012-07-19 12:21 小鼠標(biāo) 閱讀(5505) | 評論 (0)編輯 收藏
            僅列出標(biāo)題
            共13頁: First 5 6 7 8 9 10 11 12 13 
            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            隨筆分類(111)

            隨筆檔案(127)

            friends

            最新評論

            閱讀排行榜

            久久香蕉国产线看观看乱码| 97精品伊人久久久大香线蕉| 人人狠狠综合久久亚洲| 91亚洲国产成人久久精品| 久久精品女人天堂AV麻| 久久人人爽人人人人爽AV | 国产精品va久久久久久久| 久久综合色老色| 天天综合久久久网| 久久久亚洲欧洲日产国码是AV| 亚洲一本综合久久| 亚洲av伊人久久综合密臀性色| 91久久精品国产免费直播| 亚洲国产小视频精品久久久三级 | 国产精品欧美久久久久无广告 | 亚洲精品久久久www| 久久最新精品国产| 久久久久亚洲AV无码永不| 亚洲精品无码久久久| 国产午夜精品理论片久久影视| 国产精品99久久久精品无码| 亚洲色大成网站WWW久久九九| 香蕉久久一区二区不卡无毒影院 | 精品久久久久久国产91| 国产精品亚洲综合久久| 久久久www免费人成精品| 精品久久久久国产免费| 狠狠人妻久久久久久综合| 四虎国产精品免费久久5151| 国产精品久久国产精品99盘| 久久久久久久99精品免费观看| 性高湖久久久久久久久| 久久免费视频1| 久久精品一本到99热免费| 午夜精品久久久久久| 久久影院午夜理论片无码| 国色天香久久久久久久小说 | 亚洲色欲久久久综合网东京热| 欧美成人免费观看久久| 久久久亚洲欧洲日产国码是AV| 一本一道久久综合狠狠老|