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就判不合法

若是某一步除了放最后面之外没有别的放法了就停下来

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

代码丢家里了...下次回家补上

相关文章
相关标签/搜索