题意:
小冰的N个机器人兄弟排成一列,每个机器人有一个颜色。现在小冰想让同一颜色的机器人聚在一起,即任意两个同颜色的机器人之间没有其他颜色的的机器人。假设任意相邻的两个机器人可以交换位置,最少需要多少次交换?N<16,颜色种类不超过16种。
解法:一个明显的结论是:交换机器人时,相同颜色的机器人不会发生交换(保持他们之间的相对顺序)。即相当于给16种排序颜色。这总共有16!种结果,其dp方法雷同于旅行商问题的方法。
两个代码:
一种记忆化搜索,复杂度2^16*16*16:
?
/******************************************************
* @author:xiefubao
*******************************************************/
#pragma comment(linker, "/STACK:102400000,102400000")
#include
#include
#include
#include
#include
#include
#include
#include
#include