Project Eular 631

代碼丟家裏了系列................搜索

直接搜索.....枚舉

每次咱們考慮新來的一個數放哪

例如當前序列

1 2 3 4 5

你要放一個6,你能夠放哪裏呢

1 6 2 3 4 5

6 1 2 3 4 5

1 2 3 4 5 6

一共三個可行解,咱們怎麼判斷是否發生了"1243"的狀況

首先6確定是那個"4",那麼咱們找到後面最大的"3"是多少

因此咱們就在全部比"3"小的裏面,枚舉一遍看看有沒有一個"12"便可

沒有的條件是全部比"3"小的從大到小排列

==========================================

這樣一直枚舉下去,若是逆序對超過40就判不合法

若是某一步除了放最後面之外沒有別的放法了就停下來

大概要跑挺久的....大概幾十秒?

代碼丟家裏了...下次回家補上

相關文章
相關標籤/搜索