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

            The Sun Also Rises

            Algorithm, Mathematica, 計算機科學, C++, photography, GNU/Linux的討論空間

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              73 隨筆 :: 6 文章 :: 169 評論 :: 0 Trackbacks
            注:本文根據以前筆記整理而成,若有問題可以留言 or 詢問我~

            Finding Nemo

            BFS,我用了SPFA

            Searching the Web

            模擬題,我用了一堆STL~~~

            Argus

            用個堆來維護一下就行了。


            Fun Game

            做的真辛苦@@@
            厄,首先如果只有1個方向并且是形成鏈的話很容易想出O(2 ^ 16 * 16 * 16)的算法
            2個方向的問題容易解決,同時考慮正向和反向,復雜度變為O(2 ^ 16 * 32 * 32)
            關于鏈的問題,容易想到的方法是再加一維記錄頭,不過這樣的復雜度好像有點大。
            事實上,我們只要考察以第一種string為頭的方案,然后最后再企圖用最后一個和頭合并一下就可以了。。。自己證。。。
            然后就勉強AC了~~~

            CODE



            Square

            根據Steiner Tree的結論可以得到
            n == 1時是這種形狀最優
            \/
            /\
            n >= 2時是這種形狀最優
            \_/
            / \
            然后枚舉......
            p.s. 求Steiner Tree的題:
            Dhaka 2002 Hermes' Colony

            Ural1460 Wires

            Color a Tree

            不錯的題呢~
            厄,首先如果沒有限制,顯然c的從大到小順序就可以了。
            類似的想法,我們先考察c最大的那個節點。
            如果它沒有father那么顯然排在開頭。
            否則,它應當緊跟它的father(否則向前調整)
            于是這兩個節點可以合為一個。。。繼續作。
            注意k個節點合成一個后它的c用所有節點的平均數來算。。。(自己想)
            似乎可以用heap + disjoint set做到O(nlogn),不過這么小的范圍寫O(n^2)也不錯哈。。。:D

            Kid's Problem

            熟練搞出來一個模線性方程組。
            Gauss消元的時候注意一點用類似于gcd的方法加來減去,這樣保證方程組與原來同解。
            最后再搜索就行了。。。(因為模的不一定是質數)
            Gauss消元系列問題:
            PKU1395 Cog-Wheels (最后需要搜索)
            PKU2055
            Kid's Problem (這兩題如出一轍)
            PKU2947 Widget Factory

            URAL1561 Winnie the Pooh (非常推薦,上一題就是這道題的子問題啊~~~。。。)

            CODE


            The Separator in Grid

            簡單的讀題題。好像從上往下BFS下就行了。

            The Lost House

            推薦啊。。。
            首先是動態規劃。
            令suc[u] = 在以i為root的tree上找到house的sum of expect values
            fail[u] = 在以i為root的tree上沒有找到house的sum of expect values
            fail[u]容易算,就是Sigma(2 + fail[v]), v是u的son.
            suc[u]的算法嘛。。。假設我們知道訪問它的sons的順序是v[],于是計算流程如下:

            int now = 0;
            for (int i = 0; i < u_sons; ++i) {
                suc[u] += (now + 1) * leaf[v[i]] + suc[v[i]];
                now += 2 + fail[v[i]];
            }

            至于這個順序怎么確定么,8!的搜索或者2 ^ 8 * 8的動態規劃似乎都能過。
            不過有一個很牛B的貪心。
            對于某兩個兒子v1, v2,我們現在要確定它的順序。
            則先v1的方案好于先v2的方案
            <=> (now + 1) * leaf[v1] + suc[v1] + (now + 1 + 2 + fail[v2]) * leaf[v2] + suc[v2] <
                (now + 1) * leaf[v2] + suc[v2] + (now + 1 + 2 + fail[v1]) * leaf[v1] + suc[v1]
            <=> (2 + fail[v1]) * leaf[v2] < (2 + fail[v2]) * leaf[v1]
            嗯。。。然后。。。排序。。。復雜度O(n * log2k)。。。。。。。

            詳情參閱國家集訓隊 黃勁松 的論文。
            posted on 2008-01-31 03:11 FreePeter 閱讀(780) 評論(0)  編輯 收藏 引用 所屬分類: ACM/ICPC
            Creative Commons License
            This site is licensed under a Creative Commons Attribution-Share Alike 2.5 China Mainland License. 本站采用創作共用版權協議, 要求署名、相同方式共享. 轉載本站內容必須也遵循“署名-相同方式共享”的創作共用協議. This site is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
            91亚洲国产成人久久精品| 久久久久久人妻无码| 99久久精品国产一区二区三区| 亚洲精品乱码久久久久久蜜桃图片| 亚洲精品视频久久久| 最新久久免费视频| 亚洲国产精品成人久久| 国产91久久精品一区二区| 91久久九九无码成人网站| 亚洲国产精品无码久久九九| 日韩av无码久久精品免费| 人人狠狠综合久久亚洲婷婷| 久久男人中文字幕资源站| 无码专区久久综合久中文字幕| 久久99精品久久只有精品| 精品久久久久久久| 久久久久久亚洲精品影院| 国产成人久久AV免费| 精品无码久久久久久国产| 亚洲第一极品精品无码久久| 狠狠狠色丁香婷婷综合久久五月 | 国产精品天天影视久久综合网| 999久久久免费精品国产| 欧美久久久久久| 久久久久久狠狠丁香| 丁香色欲久久久久久综合网| 国产99久久久国产精免费| 青草国产精品久久久久久| 青青草原综合久久大伊人导航| 69久久精品无码一区二区| 无码八A片人妻少妇久久| 成人亚洲欧美久久久久| 2021精品国产综合久久| 日韩av无码久久精品免费| 性做久久久久久久久老女人| 国内精品久久久久久中文字幕| 久久婷婷激情综合色综合俺也去| 色狠狠久久综合网| 香蕉久久夜色精品国产尤物| 老司机午夜网站国内精品久久久久久久久 | 成人资源影音先锋久久资源网|