• <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.
            99热成人精品热久久669| 欧美性猛交xxxx免费看久久久| 久久精品一区二区三区不卡| 日韩美女18网站久久精品| 久久99精品国产99久久6男男| 欧美精品九九99久久在观看| 99久久精品免费观看国产| 狠狠久久亚洲欧美专区 | 成人精品一区二区久久久| 久久国产乱子伦免费精品| 久久香综合精品久久伊人| 欧美熟妇另类久久久久久不卡| 中文字幕无码免费久久| 久久久久久精品免费看SSS| 伊人热热久久原色播放www| 国产69精品久久久久APP下载| 亚洲人成网站999久久久综合| 性做久久久久久久久老女人| 伊人久久精品影院| 久久久国产精华液| 久久人人爽人人爽人人AV东京热 | 热re99久久6国产精品免费| 久久综合久久自在自线精品自| 久久精品国产亚洲AV麻豆网站| 久久99久久99精品免视看动漫| 97精品久久天干天天天按摩 | 国产精品久久久久AV福利动漫 | 久久国产成人午夜aⅴ影院| 久久久久国产视频电影| 精品久久久久久久久免费影院 | 久久综合久久美利坚合众国| 亚洲中文字幕无码久久2020| 久久久久成人精品无码中文字幕| 久久国产精品-久久精品| 久久久久免费视频| 色8久久人人97超碰香蕉987| 66精品综合久久久久久久| 中文成人久久久久影院免费观看| 久久一日本道色综合久久| 精品久久久无码中文字幕天天| 久久精品国产2020|