题目大意:。。。。数独还用我说么
首先一般的解法都是爆搜,爆搜的话绝对懒得做。。于是我作死去学了Dancing-Links数据结构优化的X算法,简称DLX算法
Dancing-Links虽然名字好听,但是其实实质就是双向十字链表。。但是由于调试的时候各种挂,指针还看着及其闹心(经常调试链式结构的人一定深有同感),所以只能在调试区各种加指针删指针,来回飞舞的指针,即Dancing-Links。。...
分类:
其他好文 时间:
2014-09-04 15:03:29
阅读次数:
300
题目: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
传送门题目Problem靶形数独Time Limit: 4000ms Memory Limit: 131072KB描述Descript. NOIP2009第四题小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低。但普通的数独对他们来说都过于简单了,于是....
分类:
其他好文 时间:
2014-08-30 16:25:29
阅读次数:
242
思路:这题挺好的,本来模板不是自己敲的嘛,理解了Dancing Links后是找了一个模板的,然后正好这题让自己加深理解了,也知道在实际中怎么建矩阵求解了。
把n*m的矩阵看成n*m个格子,像那个数独一样,作为n*m列;每一个矩形一行。
行列都建好矩阵后,就可以用舞蹈链求解了。
问题即转化为从这些行中选择最少的一部分使每一列被覆盖且仅覆盖一次。
#pragma comment(li...
分类:
其他好文 时间:
2014-08-29 21:25:42
阅读次数:
285
9阶数独,如上题做#include #include #include #include #include #include using namespace std;int puzzle[10][10];char tmp[15];const int SLOT=0;const int ROW=1;co...
分类:
其他好文 时间:
2014-08-25 11:24:34
阅读次数:
244
dancinglink简直是求解数独的神器,NOIP2009最后一题靶形数独,DFS各种改变搜索顺序都没法过,最后还是用了卡时过得。用dancinglink写,秒杀所有数据,总时间才400ms不到。。(虽然还不是很清楚为什么会快)。一开始还是先看这个blog,图文都非常清晰http://www.cn...
分类:
其他好文 时间:
2014-08-24 23:30:43
阅读次数:
418
前几天有人问我之前写的那个跳舞链解数独的程序的内存泄漏问题如何解决,因此回顾了一下我的那个程序。现在看来那个程序简直不忍直视,于是大刀阔斧的改了。主要是把动态内存分配都改为了静态预分配,这样就可以避免频繁的调用malloc和free。同时静态分配的好处就是内存访问局部性比较好,cache不容易mis...
分类:
其他好文 时间:
2014-08-24 14:05:12
阅读次数:
300
本文简单分析DancingLinks实现中的数据结构设计,给出了精确覆盖问题及其扩展问题的代码,并应用于数独问题。...
分类:
其他好文 时间:
2014-08-23 15:24:51
阅读次数:
257
题目大意:16*16的数独。思路分析:多说无益.想说的就是dancing links 的行是依照第一行第一列填 1第一行第二列填 2……第一行第十五列填15第一行第二列填 1……第二行。。。。列的纺织则是第一行放1,第一行放2,。。第十六行放16.。。第一列放1.。第一列放2.。。第十六列放16.。...
分类:
其他好文 时间:
2014-08-23 12:33:30
阅读次数:
264
随着版本的升高,PHP的功能也越来越完善,可用的扩展库和函数也越来越多,因此,我们写程序时也要考虑版本的兼容问题,同时还要考虑服务器(特别是虚拟主机)是否安装了扩展库。 本文介绍的函数其实是PHP手册上本来就有的,但是由于这些函数独立性较强,查找不易,所以单独介绍一下,方便查阅。1. 获取所有可用的...
分类:
Web程序 时间:
2014-08-20 16:15:32
阅读次数:
221