博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DanceLink
阅读量:7044 次
发布时间:2019-06-28

本文共 516 字,大约阅读时间需要 1 分钟。

DanceLink是一个可以解决精确覆盖和重复覆盖的搜索算法 

重复覆盖就是在精确覆盖的remove等处做改变 都是十字循环链表 

 

精确覆盖

给出一个01矩阵 要求选择几行 使每一列都有且仅有一个1 

在求所得行尽量小的视乎 f()函数可以进行一个剪枝

可以用来解决数独 并且速度很快

本质还是搜索 但是由于数据结构的本身性质致使remove和resume相当快捷 使搜索速度很快

 

重复覆盖

用来解决 给出一个01矩阵 使选择最少的行数 使每一列都至少有一个1

类似于解决 二分图中选择最少的左边节点 使能覆盖连接的所有右边节点

remove中不将该列的所有行数都清楚就好了

 

Link 是将每一行的每一个1元素嵌到链表上 这个1元素直接嵌入到该列的最上面 本身的数据结构看起来不是很横平竖直 然而由于RL数组建立了行的连接 扯直了还是一样的 UD上的顺序不重要

Dance 就是每一次的dfs时对这个链表的操作 移除类似于将一些元素按下去 元素本身不变 但是相邻的元素的LR改变 恢复是将元素浮上来 并恢复相邻的元素的LR

 

 

 

转载于:https://www.cnblogs.com/rayrayrainrain/p/6391570.html

你可能感兴趣的文章
Windows XP 禁用防火墙、系统升级、系统还原指南
查看>>
让你的电脑变成wifi
查看>>
xshell 隧道透传
查看>>
zabbix-server添加zabbix-proxy
查看>>
iostat命令找不到
查看>>
外观模式
查看>>
我的友情链接
查看>>
Angular2 AoT编译以及Rollup摇树优化
查看>>
ReactJS 学习资料汇总
查看>>
IIS权限应该怎么给?
查看>>
SpringMVC 拦截器和过滤器的区别&&Struts2拦截器和过滤器的区别
查看>>
Access:collating sort order SortOrder[2052(0)]
查看>>
Spark算子:RDD基本转换操作(1)–map、flagMap、distinct
查看>>
我的友情链接
查看>>
shell学习(二)变量
查看>>
Delphi随机数
查看>>
[置顶] webservice系列3---chain
查看>>
hibernate XML配置文件》cfg
查看>>
ExtJS2.0实用简明教程 - ExtJS的组件
查看>>
员工离职原因,只有两点最真实,其他都是扯淡!
查看>>