动态规划的一个问题:纸牌排列

lood339 2010-01-06 06:26:13
有一堆纸牌,编号分别为1, 2... n,纸牌之间有差别dif,并且
dif(i, j) != dif(j, i),如果i != j,也就是所j放在i左边,和j放在i右边的差别是不一样的。
任意两张牌i,j的差别dif(i,j)已知。
现在要将纸牌排成一行,从左到右排列,求最小的差别和时候的排列顺序。
比如,有纸牌1,2,3;如果排列的的顺序为213,那么差别为dif(2,1) + dif(1,3);
如果有四张牌1,2,3,4;排列为2413,那么差别为dif(2,4) + dif(4,1)+dif(1,3)
排列可以任意次序,但是,每张牌有且出现一次。

穷举的方法不能用。
我这和动态规划的方法有点像,但是没有确定的思路。
请大家帮我想一想
...全文
264 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lood339 2010-01-07
  • 打赏
  • 举报
回复
多谢指点,是NPC问题话,能给出规约吗?或者直接证明
FancyMouse 2010-01-06
  • 打赏
  • 举报
回复
说反了,最短hamilton路可以规约到这个问题
FancyMouse 2010-01-06
  • 打赏
  • 举报
回复
此问题可以规约到最短hamilton路。所以NPC。不用指望多项式算法了。

33,006

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧