上一页 1 2 3 4 5 6 7 ··· 12 下一页
摘要: 原文链接:http://sqybi.com/works/dlxcn/ (只转载过来一部分,全文请看原文,感觉讲得很好~)正文 精确覆盖问题 解决精确覆盖问题 舞蹈步骤 效率分析 应用于六形组 一个失败的试验 应用于四形条 应用于皇后问题 结语 致谢 历史注记 程序正文我写这篇论文的目的,是觉得这个简单的程序技巧理应得到广泛认可。假设x指向双向链的一个节点;L[x]和R[x]分别表示x的前驱节点和后继节点。每个程序员都知道如下操作:L[R[x]] ← L[x], R[L[x]] ← R[x](1)是将x从链表删除的操作;但是只有少数程序员意识到如下操作:L[R[x]] ← x, R[L[x]]. 阅读全文
posted @ 2013-10-09 16:25 _sunshine 阅读(922) 评论(0) 推荐(0) 编辑
摘要: 问题描述:给定一个n*m的矩阵,有些位置为1,有些位置为0。如果G[i][j]==1则说明i行可以覆盖j列。Problem:1)选定最少的行,使得每列有且仅有一个1.2)选定最少的行,使得每列至少一个1.DLX原理:这类属于NP问题的问题,可以使用搜索解决。但是普通的搜索必超时无疑。因此我们要设法加优化来加快速度。Dancing Links从数据结构方面对此类搜索进行了优化,通过仅保留矩阵中有用的部分提高了搜索速度。DLX的存储结构采用循环十字链表,在搜索过程中不断将不需要的部分切除,随着迭代深度的增加,矩阵迅速变得稀疏。甚至一些你想不到的优化,DLX都替你想好了。对于Problem1)的解: 阅读全文
posted @ 2013-10-09 12:02 _sunshine 阅读(2276) 评论(0) 推荐(0) 编辑
摘要: 找了很久的规律,只看十进制数字,各种乱七八糟的规律=没规律!看了别人的解题报告,虽然看懂了,可是怎么发现的这个规律呢T.T~想了很久很久~以下是转载的别人的图,自己再画太麻烦了~全部看出0~2n-1-1,下标从0开始!!!每次洗牌的时候,奇数在后偶数在前时,只需循环右移一下,如下:0(000) -->0(000) -->0(000) -->0(000)1(001) -->4(100) -->2(010) -->1(001)2(010) -->1(001) -->4(100) -->2(010)3(011) -->5(101) --&g 阅读全文
posted @ 2013-10-06 12:33 _sunshine 阅读(437) 评论(0) 推荐(0) 编辑
摘要: java大数(2013长春网络赛)--hdu4762总结一下:1.java提交类要写Main。2.读取大数。1 Scanner read=new Scanner(System.in); 2 BigInteger m; 3 m=read.nextBigInteger(); 3.基本类型转化成大数。1 BigInteger q=BigInteger.valueOf(n);4.大数最大公约数:1 BigInteger a=p.gcd(q); 5.finally函数只能写在try-catch后面 1 import java.math.*; 2 import java.util.*; 3 publ... 阅读全文
posted @ 2013-09-28 21:05 _sunshine 阅读(1219) 评论(0) 推荐(0) 编辑
摘要: AC了,但是不知道为什么,但是恶心的不得了~最近写代码,思路都非常清晰,但是代码各种bug~T.T~说说思路吧:二分~330ms~ 小队友fribbi的思路是离线250msAC~预处理solve函数(让能求出来的尽量都求出来)-->a[2]和a[n-3]已知①已知a[i]可知a[i+3]②已知a[i]a[i-1]或者a[i]a[i+1]或者a[i+1]a[i-1]可知全部③已知a[0]或a[1]或a[n-2]或a[n-1]可知全部提问:①已知则直接输出,不存在a[i+1]a[i-1]已知a[i]未知这种情况,solve已处理②已知前面或者后面的一个 二分检测(因为至少a[2+2*k],k 阅读全文
posted @ 2013-09-24 17:32 _sunshine 阅读(300) 评论(0) 推荐(0) 编辑
摘要: T.T~呜呜~先痛哭一番~赛后260ms AC~比赛的时候,破ShineCheng 7800ms AC了之后就不再搭理我的想法了~代码最大的问题:相减得负(赛后找到了);相乘溢出这个比赛的时候改出来了思路:80000个数字里有pnum=7000+个素数,O(pnum*pnum)预处理求出两两素数的乘积sumCount 与 和出现的次数mulCount;计算是O(Pnum)所以哈哈,就说是正解嚒。。。问题就是去重~for: 素数枚举 prime[i] //代码里面用栈存的素数① x=x res+=isPrime[x]② x=a+b(a 2 #include 3 #i... 阅读全文
posted @ 2013-09-23 17:18 _sunshine 阅读(335) 评论(1) 推荐(1) 编辑
摘要: 以下是转载的:个人感觉第四种方法很巧妙,O(N)复杂度最好也最快!第二种方法不太理解~腾讯一面问到了,用的算法导论中的Kth算法,期望时间复杂度为O(n)。后来想了想,万一数据多的来根本不能一次读入内存,这个时候该如何解决呢?题目如下:只有2G内存的pc机,在一个存有10G个整数的文件,从中找到中位数,写一个算法。给出了四种方法来解决算法:1.利用外排序的方法,进行排序 ,然后再去找中位数注释:外部排序基本上由两个相对独立的阶段组成。首先,按可用内存大小,将外存上含n个记录的文件分成若干长度为h的子文件,依次读入内存并利用有效的内部排序方法对它们进行排序,并将排序后得到的有序子文件重新写入外存 阅读全文
posted @ 2013-07-20 01:24 _sunshine 阅读(7089) 评论(0) 推荐(0) 编辑
摘要: 如何在vmware中如何设置ip 1.修改网络接口选hostonly2.虚拟机里安装vmware-tool,对鼠标和图形进行更好地支持。如果你在图形界面下,首先要切换到文本模式。右键点击桌面,打开一个終端在終端里:#su //switch user切换用户;可让一个普通用户切换为超级用户或其他用户, 阅读全文
posted @ 2013-07-16 01:25 _sunshine 阅读(4447) 评论(0) 推荐(0) 编辑
摘要: 题意:输入一行不超过100 000的比特流,由 "0","1","."组成,"."可以表示0也可以表示1。要求:①该比特流不能存在两个连续的00或者11 ②该比特流必须满足1个总个数和0的总个数相等问:是否存在满足要求的合法情况,满足输出yes,否则输出no思路:比赛的时候虽然看着像是DP,but实际上一点思路也没~想不到怎样能够满足即相等又不连续,2^len一定会超时~赛后看了解题报告感觉很好~先判断该比特流本身是否合理(要求1和要求2)不合理输出no,否则检查往该比特流的"."填写1,第一次 阅读全文
posted @ 2013-05-13 21:12 _sunshine 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 感觉是一道很好的题目~题意:n头牛站一排,每个牛有k个属性,每个值为1或0。要求找一个牛的最长连续队伍(子段),这个队伍中拥有每个属性的牛的个数相同。没想到怎么用hash,看的解题报告,觉得转化这里很不错,一转化就柳暗花明了。不等式或者等式由两个(i,j)之间的关系 转换成 一个之间的关系 (i,i),时间复杂度由O(N^2)变成了近似O(N)。解题报告:http://blog.csdn.net/lyy289065406/article/details/6647365有两个细节出错,WA了两次。① sum和可能是负数,所以要加上fabs()② 一开始的状态不要忘记了详见代码吧View Code 阅读全文
posted @ 2013-05-04 20:51 _sunshine 阅读(192) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 12 下一页