• <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>

            GLORY | 學習·記錄

            coding for life

            2010-7-16
            --------------------
            在設計算法的時候,拿出一張紙自己列出來思路,并且實現算法。如果只是一味的空想容易作無用功,很久想不明白的東西畫個圖列表就可能清楚了。實現完成之后,我之前的習慣是過了Sample立馬Submit,完全就是撞運氣。這個時候應該繼續在紙上跑一遍自己的程序,看是否每個邊界條件都按照預期達到了,程序是不是走了之前預想的路徑。

            posted @ 2010-07-16 23:07 meglory 閱讀(177) | 評論 (0)編輯 收藏
            uva 490 轉動字符串:Linux下面的Ctrl-D和Windows下面的Ctrl-Z一樣可以模擬EOF.
            posted @ 2010-07-16 23:01 meglory 閱讀(177) | 評論 (0)編輯 收藏
            在chinaunix上面看到的一段話。
            原文在這里

            假如你還沒有讀過本文,請盡量抽出一些時間仔細地讀一讀它。
            1,請在你有空的時候,多去讀一讀置頂的精華目錄里邊的帖子,哪怕是你現在還沒有碰到什么麻煩,也請盡量去讀一讀它。精華通常是以前討論過的一些比較精彩的帖子,也許會對你的學習有所幫助。

            2,平時有空了,多來幾次這個論壇,碰到別人討論某個自己比較熟悉的問題的時候,請盡量參與發言。通常情況,你自己認為是對的東西說出來以后都會有人反駁,在辯論的過程中你會發現自己對相關知識的認識會更進一層。

            3,假如你碰到什么麻煩了,請盡量回憶一下,精華中是否有相應的內容?如果沒有,再去發帖子。當然了,如果第一步你做的比較好的話,你基本上都會很快做出判斷的。

            4,置頂的帖子中有一些書籍,都是大家公認為比較出色的,如果你還有業余時間,請下載下來抽空閱讀一下,對提高你的水平大有裨益。

            5,當你通過論壇解決了自己的問題之后,不妨把解決的方法寫出來,告訴大家。這樣會很方便后來的人。

            posted @ 2010-07-16 13:06 meglory 閱讀(179) | 評論 (0)編輯 收藏
            除法

            輸入正整數n,按從小到大的順序輸出所有形如 abcde/fghij=n的表達式,其中a~j恰好為數字0~9的一個排列,2<=n<=79。
            樣例輸入:
            62
            樣例輸出:
            79546/01283=62
            94736/01528=62

            如何解決這個問題?

            2010-7-16更新
            上面的問題讓我一下子想到了如何求一個序列的全排列的問題,于是順著這個思路摸索了一下。Google到了一個算法。

            遞歸
            例說明如何編寫全排列的遞歸算法。
            1、首先看最后兩個數4, 5。 它們的全排列為4 5和5 4, 即以4開頭的5的全排列和以5開頭的4的全排列。由于一個數的全排列就是其本身,從而得到以上結果。
            2、再看后三個數3, 4, 5。它們的全排列為3 4 5、3 5 4、 4 3 5、 4 5 3、 5 3 4、 5 4 3 六組數。
            即以3開頭的和4,5的全排列的組合、以4開頭的和3,5的全排列的組合和以5開頭的和3,4的全排列的組合.
            從而可以推斷,設一組數p = {r1, r2, r3, ... ,rn}, 全排列為perm(p),pn = p - {rn}。
            因此perm(p) = r1perm(p1), r2perm(p2), r3perm(p3), ... , rnperm(pn)。當n = 1時perm(p} = r1。
            為了更容易理解,將整組數中的所有的數分別與第一個數交換,這樣就總是在處理后n-1個數的全排列。
            posted @ 2010-07-15 22:02 meglory 閱讀(541) | 評論 (0)編輯 收藏
            根據先序和中序確定后序的題目,非常經典的數據結構題目。

            假如有一棵樹的先序遍歷是
            DBACEGF,后序遍歷是ABCDEFG。
            因為先序遍歷是根節點-左子樹-右子樹,所以可以確定D是這顆樹的根節點。
            考慮中序遍歷是左子樹-根節點-右子樹,所以中序的序列被根節點分成了兩個部分,在這里就是ABC和EFG,分別是左子樹和右子樹。
            接下來可以確定的以D為根節點的數的左子樹的先序遍歷為BAC(節點個數根據中序的左子樹節點個數確定),右子樹的先序遍歷為EGF.
            這樣,我們的問題就轉化成為了與源問題相同的兩個子問題,那么就可以通過遞歸來實現,結束的條件就是子樹只剩一個節點,這個時候先序和中序是一樣的,打印出來,然后return到上一級。
            綜上,解決辦法就是現找到根節點,然后根據中序列劃分成兩個部分,然后分別遞歸解決。
            需要注意的是,可能出現這樣的狀況:先序為AB,中序為BA;或者先序為AB,中序為AB的情況。即劃分子樹的時候可能右子樹或者左子樹為空
            所以需要加一個判斷,就是是否用來指示序列的左指針已經大于右指針。

            POJ 3094  Quicksum實在太水,提一聲就ok。
            posted @ 2010-07-14 23:44 meglory 閱讀(157) | 評論 (0)編輯 收藏
            我實現了一個原生的版本,后來在Wikipedia看到歐拉的優化版本,但是不大知道如何實現。
            原來的版本是直接判斷是否是素數,所以空間占的比較少,時間比較多。打表法以后,應該是空間換時間的辦法,但是為啥時間和空間都變大了呢?
            應該是我實現的有問題,今天思考一下。


            7152474 meGLORY 3006 Accepted 4056K 641MS C 551B 2010-07-14 11:35:03
            7150446 meGLORY 3006 Accepted 156K 250MS C 405B 2010-07-14 00:15:01

            大概思考了一下,加了幾個判斷語句,時間成功的降到了100多一點了,內存還是4056K.
            meGLORY 3006 Accepted 4056K 125MS

            posted @ 2010-07-14 13:22 meglory 閱讀(128) | 評論 (0)編輯 收藏
            這兩天都是水題,沒有什么想法而言,就是為了熟悉一下感覺。我又給互聯網上增加了不少垃圾日志。
            昨晚出了點突發事件,原定的寫程序事件被用來處理事情了。不過后來我倒是有點想明白了,題目只是很少一點時間在看題目,很忙的時候可以先花幾分鐘把題目弄明白了,然后在去忙別的事情,這種件的空隙還能想一想思路。不知POJ有什么辦法可以把題目批量導出的,我就不用天天費勁上網讀題目了,在單位也能抽空瞅兩眼。

            我堅持兩件事情:1。決不直接貼
            題目代碼  2。每天都寫題目

            POJ 3006
            計劃打個表,然后直接搞,看了一下數據很小,應該沒有什么問題。

            在這里順便題一下素數篩選法。
            以下內容來自Wikipedia:

            To find all the prime numbers less than or equal to a given integer n by Eratosthenes' method:

            1. Create a list of consecutive integers from two to n: (2, 3, 4, ..., n).
            2. Initially, let p equal 2, the first prime number.
            3. Strike from the list all multiples of p less than or equal to n. (2p, 3p, 4p, etc.)
            4. Find the first number remaining on the list after p (this number is the next prime); replace p with this number.
            5. Repeat steps 3 and 4 until p2 is greater than n.
            6. All the remaining numbers in the list are prime
            后來,歐拉同學提出了另外一個辦法,讓每個數只要標記一次就ok

            A) Start with all the natural numbers except '1' which is not a prime:

            2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ...
            ^

            B) The leftmost number is prime. Multiply each number in the list by this prime and
            then discard the products:

            (4 6 8 10 12 14 16 18 20 22 24 26 28 30 ... )

            These are removed:
            4 6 8 10 12 14 16 18 20 22 24 26 28 30

            These are left:
            2 3 5 7 9 11 13 15 17 19 21 23 25 27 29 ...
            ^

            C) The number after the previous prime is also a prime. Multiply by it each number
            in the new list starting from this prime and then discard the products:

            (9 15 21 27 33 39 45 51 57 63 69 75 81 87 ...)

            These are removed:
            9 15 21 27

            These are left:
            2 3 5 7 11 13 17 19 23 25 29 ...
            ^





            =================================================
            2010-7-13 23:47
            拆掉了自己的惠普V3159筆記本,心情一片大好,竟然裝上以后運行正常了。出來混,遲早要還,之前一直對于拆機器的事情不感興趣,現在可真是被逼得。
            我終于可以去中關村賺取那90塊的拆機費了: )
            PS:今天中午修好了屋子里面的抽水馬桶,心情一片大好。
            posted @ 2010-07-12 13:07 meglory 閱讀(220) | 評論 (0)編輯 收藏
            非常簡單的題目,沒有方法可言。
            1。之前忘記拿char讀入的,所以直接把int和char相加所以結果一直很奇怪。
            2。題目的數字會出現以0開頭的非零數字,這個當初讀題完全沒有想到。但是看到discuss之后回去讀題,發現題目確實題目沒有說不可以。這個還是自己沒有考慮周全。


            posted @ 2010-07-11 01:47 meglory 閱讀(247) | 評論 (0)編輯 收藏
            vim使用進入一個新的階段,多多熟悉新的命令。多多接觸新的插件提高自己的效率。
            之前用過一段時間source insight發現讀代碼確實很方便,現在的ctags+taglist也基本可以做到這些了。

            ctags是一個類似也詞法分析器的東東,能夠把代碼中的變量以及函數定義給分析出來成為tag
            而taglist就根據ctags產生的tag來跳轉,所以閱讀代碼和查找函數的時候都非常方便。基本Google一下就可以找到很多配置的文章。

            現在記錄一下常用的命令:
            基本使用
            在相應的源碼目錄運行ctags -R產生相應的tags文件
            在有tags文件的源碼目錄下執行 vim 源碼文件名 進入vim
            VIM 啟動時會在該目錄查找tags文件,如果找到則自動加載。
            使用 :TlistToggle 命令切換函數列表開關。
            Ctrl+兩下w 切換編輯區域和列表區域。
            在列表區將光標移動到函數名上,回車即可查看。
            可以在編輯區將光標移動到函數名上,使用 Ctrl+] 查看函數定義。

            在taglist窗口中,可以使用下面的快捷鍵:
            <CR>          跳到光標下tag所定義的位置,用鼠標雙擊此tag功能也一樣
            o             在一個新打開的窗口中顯示光標下tag
            <Space>       顯示光標下tag的原型定義
            u             更新taglist窗口中的tag
            s             更改排序方式,在按名字排序和按出現順序排序間切換
            x             taglist窗口放大和縮小,方便查看較長的tag
            +             打開一個折疊,同zo
            -             將tag折疊起來,同zc
            *             打開所有的折疊,同zR
            =             將所有tag折疊起來,同zM
            [[            跳到前一個文件
            ]]            跳到后一個文件
            q             關閉taglist窗口

            posted @ 2010-07-09 23:52 meglory 閱讀(258) | 評論 (0)編輯 收藏
            1.WA數次,因為邊界的問題,把2也當成候選數了,沒有留心two odd primes.
            2.gcc編譯math.h時,需要-lm.
            3.如何從vim里面把代碼拷出來提交到POJ的那個框框里面?我搞了半天沒有解決

            附:

            gcc -l參數

            -l參數就是用來指定程序要鏈接的庫,-l參數緊接著就是庫名,那么庫名跟真正的庫文件名有什么關系呢?就拿數學庫來說,他的庫名是m,他的庫文件名是libm.so,很容易看出,把庫文件名的頭lib和尾.so去掉就是庫名了


            posted @ 2010-07-09 00:26 meglory 閱讀(240) | 評論 (0)編輯 收藏
            僅列出標題
            共5頁: 1 2 3 4 5 

            導航

            隨筆分類

            隨筆檔案

            最新評論

            9久久9久久精品| 岛国搬运www久久| 久久久久亚洲AV成人片| 97久久国产亚洲精品超碰热| 99久久国产亚洲高清观看2024| 一本久道久久综合狠狠躁AV| 国产V亚洲V天堂无码久久久| 热RE99久久精品国产66热| 久久综合九色综合网站| 久久免费观看视频| 国产精品久久久久天天影视| 无码国内精品久久综合88| 97久久精品无码一区二区天美| 久久久国产亚洲精品| 久久精品国产一区二区三区日韩| 亚洲天堂久久久| 久久精品国产一区二区| 99精品久久精品一区二区| 久久精品国产亚洲αv忘忧草| 久久综合九色综合久99| 久久国产精品成人片免费| 一本色综合久久| 久久久无码精品亚洲日韩软件| 久久天堂AV综合合色蜜桃网 | 国产A级毛片久久久精品毛片| 大香网伊人久久综合网2020| 国产99精品久久| 久久久久久无码Av成人影院| 久久久久久久女国产乱让韩| 午夜精品久久久久成人| 久久99精品久久久久久水蜜桃 | 伊人色综合久久天天| 亚洲综合伊人久久大杳蕉| 伊人久久精品影院| 久久最新免费视频| 久久一区二区免费播放| 久久婷婷五月综合成人D啪| 精品久久久无码中文字幕天天| 丁香久久婷婷国产午夜视频| 99久久精品无码一区二区毛片 | 999久久久免费精品国产|