Two Professors
CERC 2008
題目大意:給n條線段,要求劃分成盡可能少的子集,使得在同一個子集中的線段兩兩不重疊.
同時限定線段1和線段2不能在同一子集中.
記每條線段為[Li,Ri], 每個子集的最右端為Bi.
記線段1和2中,L較小的那個為X,另一個為Y.
如果沒有那個限定,容易想到貪心的方法:將所有線段按L從小到大排序.然后依次處理線段k,如果當前存在某個集合的Bi<=Lk,就將Lk加入此集合中,并更新Bi=Rk.否則新開一個集合放入k.模擬這個過程,最后的集合數就是答案.用堆維護已有集合的信息,時間復雜度是O(nlgn).
有了限制條件后,原方法不適用了,因為在X與Y之間處理的線段,對Y有后效性.這會使得單純按照剛才的方法隨意貪心,可能輪到Y時,只有X所在集合的Bi<=LY,迫使必須開新集合.但實際上,有可能可以通過調整X與Y之間的線段排列結構,使Y避開X.
問題關鍵就是如何判斷能否調整(并不用關心詳細的調整步驟).
當一條線段(P)面臨多個可插入的集合時,之前的方法是隨意選一個,而不合適的決策正在此產生.下面構造一個情景:
假設P可以在兩個集合s,t中選擇,而X在s中.
現在P選擇加入t.
接下來按部就班地處理.
輪到Y選時,它只能選擇加入s,或者開新的集合.
這時候,我們能得知,如果當初P選擇的是s,緊隨其后的其它選擇也相應地對調,那么Y此時肯定面臨的是只能加入t,或者開新的集合.
這樣Y當然直接加入t就行了.
這說明,只要存在一個這樣的P,當Y遭遇X時,肯定存在形狀對稱的另一個局面使Y避開X,而P就是關鍵先生.
所以只需稍微改造之前的算法,在處理X與Y之間的線段時,判斷并記錄下是否出現過可選局面.這樣就能正確處理Y遭遇X的情形了.
其它情形時策略不變(可以證明這樣的解是最優的).
代碼略...
FeedBack:
只有注冊用戶登錄后才能發表評論。 | ||
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
![]() |
||
相關文章:
|
||
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
27 | 28 | 29 | 30 | 1 | 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 | 31 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 |
"Do not spend all your time on training or studying - this way you will probably become
very exhausted and unwilling to compete more.
Whatever you do - have fun. Once you find programming is no fun anymore
– drop it. Play soccer, find a girlfriend, study something not related
to programming, just live a life - programming contests are only
programming contests, and nothing more. Don't let them become your life
- for your life is much more interesting and colorful."
-- Petr
留言簿(3)
隨筆分類(59)
隨筆檔案(43)
- 2013年9月 (1)
- 2011年8月 (3)
- 2011年7月 (3)
- 2011年6月 (1)
- 2011年5月 (1)
- 2010年5月 (3)
- 2010年4月 (1)
- 2009年12月 (1)
- 2009年10月 (1)
- 2009年9月 (1)
- 2009年7月 (6)
- 2009年6月 (7)
- 2009年5月 (3)
- 2009年4月 (3)
- 2009年3月 (4)
- 2009年2月 (2)
- 2008年2月 (2)
cows
搜索
最新評論

- 1.?re: srm 514 div1 250 600 900
- 請高手幫忙啊,我給你留言了,SRM 144 DIV1 的1100分的題,請幫忙分析一下啊,我的郵箱:ervin_yue@163.com
- --ervin_yue
- 2.?re: 人民搜索筆試.坑爹題...
-
能要下您的q號嗎,我最近也要去筆試人民搜索,
能多了解下嗎,
我的q 3323 08723
謝謝
- --栗
- 3.?re: pku 2486 Apple Tree 樹形DP+背包DP
- 這樣做復雜度應該是n*n*k*k
- --kimiyoung
- 4.?re: Two Professors (CERC 2008) 解題報告
- Up!
- --zaakdov
- 5.?re: 字符串匹配 后綴數組 trie圖(更新)
-
@小狗
Thanks~~ 手誤了 - --<A href="mailto:wolf5x1016@gmail.com"