Re: [問題] ACM Trainsorting
※ 引述《k577887 (HaHa-Dog)》之銘言:
: 問題(Question):
: 這一題為什要從後面看過來算LIS 跟LDS
: 為什從第一個算會錯誤...
: http://ppt.cc/s3cm
: 討論地方 1 2 4 3 7 6
: 從第一個算起 7 6 3 2 1 怎來的....
有一種想法是這樣的,
先假設1一定要用,
所以接下來一定是從1開始,
往左越來越大往右越來越小。
(也就是把1之前的東西砍光接著做LIS+LDS-1)
接下來我們嘗試拿2開始,
做剛才的事情。
之後從4開始嘗試...
一直試到從6當頭為止,
我們把每個東西拿來當開頭都嘗試過了,
看最長的那串多長就對了。
為什麼會對呢?
我們假設規定某個東西一定要拿,
那它之後的東西都只能丟左邊或右邊,
所以可以強迫算出來的LIS和LDS只有中間的開頭重複,
因此,只要拿每個數字當開頭,計算LIS+LDS-1,
最大的那組就是答案了。
不過,這樣需要跑O(N^3) (假設LIS用N^2的方法)
至於為什麼從後面往前跑可以加速到O(N^)呢?
就留著讓你自己想想看了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.49.243
→
08/24 13:20, , 1F
08/24 13:20, 1F
→
08/24 13:47, , 2F
08/24 13:47, 2F
→
08/24 15:17, , 3F
08/24 15:17, 3F
→
08/24 15:23, , 4F
08/24 15:23, 4F
→
08/24 19:21, , 5F
08/24 19:21, 5F
→
08/24 20:03, , 6F
08/24 20:03, 6F
→
08/24 20:35, , 7F
08/24 20:35, 7F
→
08/24 20:37, , 8F
08/24 20:37, 8F
→
08/24 20:37, , 9F
08/24 20:37, 9F
→
08/24 22:43, , 10F
08/24 22:43, 10F
→
08/24 22:44, , 11F
08/24 22:44, 11F
→
08/24 22:45, , 12F
08/24 22:45, 12F
→
08/25 11:26, , 13F
08/25 11:26, 13F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):