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

            FOJ有獎月賽-2010年03月 題解 by Puzzle

            Posted on 2010-03-23 14:20 Puzzle 閱讀(365) 評論(1)  編輯 收藏 引用 所屬分類: 題解

            A.Amicable Pair
            親和數,先暴力算出數據,然后打表之。

            B.A New Sequence Problem
            先YM一下AC。根據題目里的公式,先生成A數組。算A[0]需要通過fibonacci找循環節,找循環節的方法就直接暴力即可,當f[i]=f[1]&&f[i-1]=f[0],i-1必是一個循環的長度。算出A數組以后,其實就是對于字符串的操作了。比賽的時候用后綴數組算出來了,但是沒想到O(n)的操作。賽后看到AC說是o(n)的DP,堅定復雜度后想到,在算出height數組后,用當前位置表示為最低位置,然后向左向右擴展到第一個比當前位置低的地方,并bl[],br[]數組記錄這個最左和最右,幾乎就是o(n)的。


            C.Coin Puzzle
            給出一個多邊形和兩個圓,問兩個圓能不能放在多邊形里,并且兩圓不相交。
            求出兩個圓的圓心的合法范圍,是兩個多邊形,然后求兩個多邊形的最遠距離

            D.Tree Game
            能構成一顆生成樹當且僅當邊數不少于n-1條;如果能構成一種生成樹,那么能構成任意類型生成樹

            E.Swap
            發生在兩個環間的交換會將兩個環合并,發生在同一個環的交換會將這個環拆成兩個環。
            如果不考慮奇偶性,那么每個環之間相互獨立,互不影響,現在若一個環里同奇偶性,例如全是奇數,那他肯定要和其他的環發生接觸,也就是和其他環合并,這里選擇全是偶數的環顯然不會更差。
            如果沒有了偶數環,那就只能選擇和剩下的既又奇又有偶的環合并了。
            最后可以證明一個環里既又奇數又有偶數時,最快將它完全拆開需要n-1步。

            F.JinYueTuan
            用隔板法可以知道答案是C(m+n-1, n) * n!. 但是數據量非常大,直接算乘積超時,加上一個剪枝瞬間出解:如果發現在邊乘邊模的過程中答案變為0,就可以跳出了。

            G. MiniSum
            dp[i][j]表示當只考慮前i個物品時,要準備加入第i+1個物品時,X[i+1]前面的系數為j時的函數最小值。
            轉移就是dp[i][j] + j * (-Li) --> dp[i+1][j - Li]
             dp[i][j] + j * ( Li) --> dp[i+1][j + Li]
            向后更新,最后答案就是dp[n][?]取個最大的。

            H.Urban planning
            題目十分費解,受不了了。。。
            正確的理解就是給N個點,每個點有個權值,以及每兩個點之間有邊權,單向的。求出一個包含特定點(假設編號為1)的點的集合滿足:
            1、這個集合元素要盡量多。
            2、集合中的元素之間差異不能超過V。
            3、在每個集合中選出邊,使特定點到其他點都有路可達,并且邊權之和要最小。
            4、如果兩個集合元素個數相同,取較大的邊權。

            首先,如果給出滿足條件的點集,我們知道每兩個點之間都有邊,只要求出一顆最小生成樹就行了,鑒于有向,所以求出從特定點的樹形圖就行了(關于根確定的最小樹形圖,參考劉朱算法)。所以只要找到這個滿足條件的集合就行了,注意到集合之中的元素最大差異不能超過V,而且V也很小,所以可以枚舉集合的權值區間[lo,lo+V],所有權值落在這個區間中的點都滿足條件,由于任兩個點之間都有邊,所以一定存在樹形圖,最后求下最小樹形圖,然后判斷下就行了。。。
            I.Air Strike
            離線操作,把刪除和查詢都保存起來。把刪除保存后排序并unique,查詢也進行排序,然后從小到大查詢,看當前是否被刪除,刪除的話跳過當前這個點往后移一個,驚訝于最后代碼40行以內。

            J.MiniCost
            題目意思就是給出一個括號序列,每次可以選擇改變特定點上的括號方向,并且改變有權值。求出最小的改變權值和,使這個括號序列合法。
            暫時只會O(N^2)算法。
            注意到如果一個括號序列要是合法的話,任意位置一定是左括號數大于等于右括號數,所以以此定義狀態dp[i][j],表示前i個符號中,左括號比右括號多j個。只要根據當前的符號轉移就行了。。 初始條件dp[0][0] = 0 。。最后答案dp[N][0] 。。。

            Feedback

            # re: FOJ有獎月賽-2010年03月 題解 by Puzzle[未登錄]  回復  更多評論   

            2010-06-14 08:35 by joy32812
            lz,想問下G題。
            怎么證明對于Li,Xi只取-Li或者Li就能保證取到最小值。?
            thx。

            posts - 3, comments - 8, trackbacks - 0, articles - 4

            Copyright © Puzzle

            国产精品美女久久久免费| 97久久超碰国产精品旧版| 亚洲精品无码专区久久同性男| 久久久WWW成人免费毛片| 人妻无码久久精品| 99久久精品国产一区二区| 狠狠色丁香婷婷综合久久来| 久久天天躁狠狠躁夜夜2020 | 久久九九全国免费| 99热成人精品免费久久| 久久久久久综合网天天| 成人午夜精品久久久久久久小说| 亚洲人AV永久一区二区三区久久| 久久99久久99精品免视看动漫| 久久九色综合九色99伊人| 久久综合久久自在自线精品自| 国产精品久久久久乳精品爆| 嫩草伊人久久精品少妇AV| 欧美成a人片免费看久久| 国产精品久久久久…| 人妻无码αv中文字幕久久琪琪布| 久久九九久精品国产| 青青草原1769久久免费播放| 久久精品亚洲中文字幕无码麻豆| 久久91精品国产91久| 亚洲国产精品无码久久九九| 精品久久人人做人人爽综合| 99久久久精品免费观看国产| 久久久久亚洲av无码专区| 久久久久青草线蕉综合超碰| 7777精品伊人久久久大香线蕉| 欧美大战日韩91综合一区婷婷久久青草| 久久精品国产亚洲麻豆| 国产一级做a爰片久久毛片| 成人妇女免费播放久久久| 亚洲熟妇无码另类久久久| 亚洲精品无码久久一线| 777午夜精品久久av蜜臀| 亚洲精品乱码久久久久久按摩 | 久久婷婷久久一区二区三区| 亚洲国产成人久久精品影视 |