题意 :  给你一个大小为 n * m 的矩形 , 坐标是( 0 , 0 ) ~ ( n , m )  。然后给你 p 个小矩形 , 坐标是( x1 , y1 ) ~ ( x2 , y2 ) , 你选择最小的几个矩形 , 使得这些矩形可以覆盖整个矩形 , 并且互相不会重叠 。( n , m 
思路 : Dancing Links 的精确覆盖问题 。
我们将 n * m 的矩形分成 n * m ...
                            
                            
                                分类:
其他好文   时间:
2014-10-03 23:13:35   
                                阅读次数:
340
                             
                    
                        
                            
                            
                                用最少的矩阵覆盖n*m的地图,注意矩阵不能互相覆盖。
这里显然是一个精确覆盖,但由于矩阵拼接过程中,有公共的边,这里需要的技巧就是把矩阵的左边和下面截去一个单位。
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using...
                            
                            
                                分类:
其他好文   时间:
2014-10-03 00:07:53   
                                阅读次数:
217
                             
                    
                        
                            
                            
                                利用 Dancing Link 来解数独
具体的可以看    lrj 的训练指南 和 《 Dancing Links 在搜索中的应用 》这篇论文
Dancing Link 来求解数独 , 是通过求解精确覆盖
精确覆盖就是给出一个 01 矩阵 , 要求我们选择一些行 , 使得每一列有且仅有一个 1
对于数独问题 , 行就是我们的选择 , 即在第 i 行 第 j 列 放上 数字...
                            
                            
                                分类:
其他好文   时间:
2014-09-30 02:38:51   
                                阅读次数:
362
                             
                    
                        
                            
                            
                                直接精确覆盖开始逐行添加超时了,换成了单点添加#include #include #include #include #include using namespace std;#define FOR(i,A,s) for(int i = A[s]; i != s; i = A[i])#define....
                            
                            
                                分类:
其他好文   时间:
2014-09-29 23:30:51   
                                阅读次数:
214
                             
                    
                        
                            
                            
                                很久以前就看到的一个经典题,一直没做,今天拿来练手。街霸给n#include #include #include #include #include #include #include #include using namespace std;#define MP make_pair#define ...
                            
                            
                                分类:
其他好文   时间:
2014-09-28 14:07:02   
                                阅读次数:
172
                             
                    
                        
                            
                            
                                题目:http://poj.org/problem?id=2676题意:数独,每行1-9,每列1-9,每3*3小格1-9,填数,不能重复方法:Dancing Links(16ms)或者DFS暴搜(400-900ms)Dancing Links(DLX) 是为了解决矩阵精确覆盖问题的算法,算法效率非常...
                            
                            
                                分类:
其他好文   时间:
2014-09-02 14:07:34   
                                阅读次数:
225
                             
                    
                        
                            
                            
                                DLX的题,做过这题才算是会吧。这道题转化成了精确覆盖模型来做,一开始,只是单纯的要覆盖完行列和斜线,WA。后来醒悟了,不能这样,只要覆盖全部行或列即可。虽然如此,但某些细节地方很关键不能考虑到。特别要注意的是for(int i=R[c];i;i=R[i]){ if(i>ne) break; if(...
                            
                            
                                分类:
其他好文   时间:
2014-08-26 21:08:46   
                                阅读次数:
252
                             
                    
                        
                            
                            
                                精确覆盖#include #include #include #include #include using namespace std;const int maxn=920;const int maxnode=920*550;const int maxr=550;int ans;struct DL...
                            
                            
                                分类:
其他好文   时间:
2014-08-26 09:44:25   
                                阅读次数:
221
                             
                    
                        
                            
                            
                                DLX算法,刚接触,是关于精确覆盖的,白书上有算法介绍。代码模板#include #include #include #include #include #include using namespace std;char puzzle[20][20];const int SLOT=0;const i...
                            
                            
                                分类:
其他好文   时间:
2014-08-25 11:19:14   
                                阅读次数:
178
                             
                    
                        
                            
                            
                                本文简单分析DancingLinks实现中的数据结构设计,给出了精确覆盖问题及其扩展问题的代码,并应用于数独问题。...
                            
                            
                                分类:
其他好文   时间:
2014-08-23 15:24:51   
                                阅读次数:
257