ZOJ - 3209 Treasure Map

Dance Linking

 

很早就想写下Dance Linking了。那个时候用一般的搜索方法解了数独。之后在网上看到说能用 Knuth 发明的 Dance Linking 高效地解决。所以找了一些资料来看(当然也包括momodi的《Dancing Links 在搜索中的应用》)。最后看懂了,但是不知道怎么构造这个十字链表 T_T 。后来不知怎么地就不了了之了。 现在重新来看还是很容易就看懂了,不过构造十字链表还是有点困难。现在比起以前网上关于dance Linking的资料多了。遂,寻一参考之。^_^

链接如下: http://hi.baidu.com/ofeitian/blog/item/f761ef16d36f330f4b90a7ff.html

 

链表的题目本来就没写过多少,双向链表的插入都显得十分生疏,总结下:

如果要在链尾插入元素,则先更新链尾的指针,后再更新链头的指针。因为我们要靠链头指针找到原来的链尾,先更新的话就找不到了。

 

最后,感觉可以加个行指针。因为n可以达到1000左右,那样使行的删除时间大大减少。不过没时间了, 要比赛了。以后有时间再优化吧。

 

补充一下: 行最多可达到500,列最多为900。我这个程序耗时大约为360ms。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值