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

            A Za, A Za, Fighting...

            堅(jiān)信:勤能補(bǔ)拙

            [zz] 差分約束系統(tǒng)

            poj 1275 3159 1364 1716 1201 3169
            這類問(wèn)題,就像網(wǎng)絡(luò)流,圖論,dp,關(guān)鍵在列出滿足的表達(dá)式,建立好數(shù)學(xué)模型,剩下的過(guò)程就很簡(jiǎn)單了。所以主要難點(diǎn)在于構(gòu)圖,從實(shí)際的描述抽象成模型。準(zhǔn)確找到約束條件。

            關(guān)于基礎(chǔ)知識(shí)可以查看clrs 22.4節(jié)。下面只介紹我遇到的一些問(wèn)題和理解。

            所謂的差分約束系統(tǒng),實(shí)際上指一系列的表達(dá)式,滿足 形如{ xi - xj <= a}
            求解實(shí)際上轉(zhuǎn)化成了圖論里的一個(gè)等價(jià)問(wèn)題,最短路問(wèn)題,實(shí)際上巧妙的利用了最短路具有的性質(zhì) di - dj <= w(j,i)
            如果這樣的最短路求成來(lái)了,他們的值便可以直接作為xi xj的一組可行解。

            圖論里求最短路,有很多方法,差分約束系統(tǒng),一般利用的是單源最短路,而在單源最短路算法中,常見(jiàn)的是dijkstra和bellman-ford算法。這兩個(gè)算法各有優(yōu)劣。

            dijkstra算法,效率比較高,如果用堆實(shí)現(xiàn),可以達(dá)到O(vlogv+E)的復(fù)雜度,但是它只能解決正邊權(quán)類型的問(wèn)題,對(duì)于負(fù)邊權(quán)的問(wèn)題,必須采用bellman-ford算法,它的復(fù)雜度是VE.

            bellman-ford算法很強(qiáng)大,不單可以求最短路,還可以求最長(zhǎng)路。一般如果約束條件是 <=形式的,就標(biāo)志著要求最短路,>=則要通過(guò)求最長(zhǎng)路解決。
            當(dāng)然這兩種約束是可以轉(zhuǎn)化的,因?yàn)?xi - xj <= a實(shí)際上等價(jià)于xj- xi >= a。

            一.優(yōu)化途徑:
            1.如果改變邊的松弛(relax)順序,程序的執(zhí)行順序會(huì)有很多改觀
            2.當(dāng)所有邊都不能再松弛的時(shí)候,便可以跳出循環(huán)了,不必全部循環(huán)V-1次
            這些可以通過(guò)poj1716 1201體驗(yàn)到
            二.關(guān)于Dist[]的初始化化
            1.如果將源點(diǎn)到各點(diǎn)的距離初始化為0,最終求出的最短路滿足 它們之間相互最接近了
            2.如果將源點(diǎn)到各點(diǎn)的距離初始化為INF(無(wú)窮大),其中之1為0,最終求出的最短路滿足 它們與該點(diǎn)之間相互差值最大。
            這些可以從poj3169 layout 得到證實(shí)。
            三.
            關(guān)于dikstra算法的堆實(shí)現(xiàn),有兩種策略,一種是一開(kāi)始把全部節(jié)點(diǎn)放到堆里,為每個(gè)節(jié)點(diǎn)維護(hù)一個(gè)在堆里的索引數(shù)組。另一種策略是當(dāng)當(dāng)前點(diǎn)被更新才放到堆里,但是要注意標(biāo)記已經(jīng)求得最短路的哪些點(diǎn),避免重復(fù)求值。
            我采用的是第一種策略,去求解的poj3159 Candies

            當(dāng)然還有一個(gè)優(yōu)化是,如果已經(jīng)找到了目標(biāo)點(diǎn),就可以退出了,不必全部求出最短路

            四.陷阱
            int a[MAX] = {INF};
            注意a里面的元素只有第一個(gè)會(huì)被賦為INF,其他會(huì)被賦為0,而不是INF

            關(guān)于模型的建立,其實(shí),很多情況下我們的 xi都是一個(gè)和式,比如從開(kāi)頭到現(xiàn)在的某個(gè)量的積累值,比如poj1716 1201中,我們要定義x[i]為點(diǎn)集里小于i的數(shù)的個(gè)數(shù),則x[j] - x[i]則表示了落在線段區(qū)間[i,j]的點(diǎn)的個(gè)數(shù)。還有poj1364 King 也是類似,另外一些可能就是比較簡(jiǎn)單的直接的約束關(guān)系。

            比較復(fù)雜的如poj1275 Cashier Employment
            這個(gè)問(wèn)題比較特殊,乍看其他上述問(wèn)題都是尋找最小數(shù)目的點(diǎn),使這些點(diǎn)可以覆蓋線段。而這個(gè)則是找一些數(shù)目的人,而人實(shí)際上是一些線段,使這些線段可以在那些特點(diǎn)的總數(shù)目可以滿足要求并且數(shù)目最少。關(guān)鍵在定義一個(gè)狀態(tài),這里如果大膽定義i時(shí)刻出納員數(shù)目s[i],就可以了,然后利用這個(gè)s[i]便可以找到所有的約束關(guān)系,并列出不等式,這樣模型就建立好了。

            這個(gè)可以參考劉汝佳的書(shū)P307,圖論最短路那部分,剛好以這個(gè)問(wèn)題為例,而且這個(gè)問(wèn)題求的就是最長(zhǎng)路。對(duì)于sum可以二分進(jìn)行優(yōu)化,不過(guò)我直接窮舉也過(guò)了。


            poj3159 Candies
            這是我接觸差分約束的第一題。設(shè)S[a]為kid a獲得的candies數(shù),則每一行代表的約束是S[b]-S[a]<=c,目標(biāo)函數(shù)是使得S=S[N]-S[1]最大。
            利用差分約束的思想建圖,對(duì)于每一條約束,從a向b做一條長(zhǎng)為c的邊,則從1到N的最短路即為所求。由于本題c皆為非負(fù)數(shù),所以可以用Dijkstra高效解決。

            posted on 2010-09-12 10:53 simplyzhao 閱讀(219) 評(píng)論(0)  編輯 收藏 引用 所屬分類: G_其他

            導(dǎo)航

            <2011年6月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            統(tǒng)計(jì)

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久无码国产| 久久亚洲国产欧洲精品一| 国内精品欧美久久精品| 俺来也俺去啦久久综合网| 久久精品国产亚洲AV大全| 97久久国产露脸精品国产| 亚洲午夜久久影院| 色青青草原桃花久久综合| 狠狠人妻久久久久久综合| 国产一区二区精品久久| 久久久久亚洲精品男人的天堂| 国产精品天天影视久久综合网| 色综合久久久久| 亚洲色欲久久久久综合网 | 久久香综合精品久久伊人| 国内精品久久久久久99| 色婷婷久久久SWAG精品| 久久狠狠爱亚洲综合影院| 99久久免费只有精品国产| 亚洲欧洲日产国码无码久久99| 国内精品久久九九国产精品| 久久亚洲日韩看片无码| 久久se这里只有精品| 久久久久亚洲精品天堂| 久久免费国产精品| 九九热久久免费视频| AV无码久久久久不卡网站下载| 亚洲国产成人久久综合一区77 | 久久成人18免费网站| 精品国产91久久久久久久| 久久这里只有精品18| 成人综合久久精品色婷婷| 亚洲欧洲久久久精品| 国内精品久久久久久麻豆| 国产精自产拍久久久久久蜜| 欧美亚洲国产精品久久蜜芽| avtt天堂网久久精品| 91精品国产高清久久久久久io| 亚洲国产精品无码成人片久久| 久久无码专区国产精品发布| 欧美伊人久久大香线蕉综合|