hihocoder1170(狀壓dp)
題意:
小冰的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