DanceLink
DanceLink是一个可以解决精确覆盖和重复覆盖的搜索算法
重复覆盖就是在精确覆盖的remove等处做改变 都是十字循环链表
精确覆盖
给出一个01矩阵 要求选择几行 使每一列都有且仅有一个1
在求所得行尽量小的视乎 f()函数可以进行一个剪枝
可以用来解决数独 并且速度很快
本质还是搜索 但是由于数据结构的本身性质致使remove和resume相当快捷 使搜索速度很快
重复覆盖
用来解决 给出一个01矩阵 使选择最少的行数 使每一列都至少有一个1
类似于解决 二分图中选择最少的左边节点 使能覆盖连接的所有右边节点
remove中不将该列的所有行数都清楚就好了
Link 是将每一行的每一个1元素嵌到链表上 这个1元素直接嵌入到该列的最上面 本身的数据结构看起来不是很横平竖直 然而由于RL数组建立了行的连接 扯直了还是一样的 UD上的顺序不重要
Dance 就是每一次的dfs时对这个链表的操作 移除类似于将一些元素按下去 元素本身不变 但是相邻的元素的LR改变 恢复是将元素浮上来 并恢复相邻的元素的LR
DanceLink的更多相关文章
随机推荐
- 男神的约会(状压dp)
有一天男神约了学姐姐去看电影,电影院有一个活动,给你一个10*10的矩阵,每一个格子上都有一个0-9的整数,表示一共十种优惠券中的一种. 观众从左上角的格子开始走,走到右下角.每走到一个有着a号优惠券 ...
- NodeJS版本EasyDarwin开源流媒体服务器开发心得
title: Node版本EasyDarwin开发心得 date: 2018-03-27 22:46:15 tags: 年后着手Node版本EasyDarwin的开发工作,截止到今天2018年03月2 ...
- SharePoint服务器端对象模型 之 序言
对于刚刚开始接触SharePoint的开发人员,即使之前有较为丰富的ASP.NET开发经验,在面对SharePoint时候可能也很难找到入手的方向.对于任何一种开发平台而言,学习开发的过程大致会包括: ...
- SharePoint服务器端对象模型 之 访问文件和文件夹(Part 2)
4.添加文件夹 文件夹的创建方法在文档库和普通列表中稍有不同. 在文档库中,与一般的集合操作相同,直接使用SPFolderCollection的Add(string name)方法即可添加文件夹,例如 ...
- window.XMLHttpRequest对象详解
来自:http://blog.csdn.net/lccone/article/details/7743946 window.XMLHttpRequest XMLHttpRequest对象是当今所有AJ ...
- Hibernate 延迟加载的代理模式 和 Spring AOP的代理模式
Hibernate 延迟加载的代理模式 和 Spring AOP的代理模式 主题 概念 Hibernate 延迟加载的代理模式 Spring AOP的代理模式 区别和联系 静态代理和动态代理 概念 代 ...
- sublime Text的一些用法(emmet插件、)
在学的过程中,看到了一个非常方便的html的标签的写法:,插件emmet 一.安装emmet 看清楚哦~~这是Sublime text 3不是2的版本,两者的安装还是有区别的1 ONE:建议到官方下载 ...
- git github usage
以gerrit-trigger-plugin为例,下面的链接都是从相应页面上直接拷贝的. 法一:不用github的账号,打开这个库在github上的主页,运行下面命令即可 read only 运行命令 ...
- 动态加载和卸载 DLL
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- linux下tcpdump命令的使用
一般情况下linux系统会自带tcpdump工具,如果系统没有安装,直接用命令安装就行了. 安装命令:yum install -y tcpdump 查看安装版本命令:tcpdump --help 查看 ...