- 博客(11)
- 收藏
- 关注
原创 矩阵精确覆盖问题
/** * 精确覆盖问题:由0和1组成的矩阵,从中选出若干行,使得每列恰好只包含一个1 解决思路: 当所有列都已包含,终止,否则: 选定一列c(确定) * 选择一行r,使得A[r][c]==1(随机) 将该行包含进解集 对于该行中任意列c1,若满足A[r][c1]==1,则: * 删除c1,且对于所有满足A[r1][c1]的行r1,删除r1 循环直至满足终止条件 * */
2014-11-01 22:39:23
916
转载 并查集
并查集代码如下:#include #include using namespace std;string *a;//存储字符串 不重复int *represent;//该字符串所属类别int *rk;//每个结点的高度,没有孩子结点时高度为0int count = 0;//a中的字符串个数int findIndex( string s ){
2014-10-29 20:27:46
356
原创 八皇后问题
来自剑指offer:一维数组,下标即表示行,数组元素表示列。列不相同,排列问题。同时要满足约束条件| i-j | != | a[i]-a[j] |。/** * 八皇后问题:8*8棋盘上放8个旗子,每行每列都有,且任意相邻两个不能组成对角线 * @author Samantha * */public class EightQueens {
2014-10-26 20:23:54
353
转载 两个排序数组取第k小的数字
一开始想到的方法是两个指针顺序查找,时间复杂度O(m+n)。后来看了网上的大神做法,用二分查找。曲线救国。先找到前面k-1个数字,即A[1,2,...p]和B[1,2,...,q]的个数p+q=k-1。由此可见q=k-1-p,使用二分查找找到q即可,时间复杂度为O(lgn)。二分查找终止条件:B[q]关键点:由于数组下标是从0开始计算的,因此可以在数组的两头分别加上一个最小
2014-10-26 20:23:10
828
转载 java单例模式
来源:http://devbean.blog.51cto.com/448512/203501/点击打开链接面试java的话,会考设计模式还有一些框架。public class Singleton {private volatile static Singleton instance = null ;private Singleton(){}public
2014-10-26 20:22:09
431
转载 编程之路(原作者:半棵树http://blog.youkuaiyun.com/banketree/article/details/39995209)
本文源地址:http://blog.youkuaiyun.com/banketree/article/details/39995209简介技术永无止境,编程方向现在越来越广了,你还在迷茫地选择方向么?本篇将简单描述编程各个方面,以及编程之路会遇到的生活问题。问题与解答1、编程分为几个阶段?高手箴言中把编程分为六个阶段:1、熟练地使用某种语言(java)。2、精通基于某种
2014-10-26 20:19:37
573
原创 RMQ_Sparse Table & Segment Tree
做了hihoCoder上的一道题,折腾了俩小时,也是醉了TLE:一开始用java做的,TLE,看到有可能是因为scanner的原因,详见http://www.cpe.ku.ac.th/~jim/java-io.html(赞),照着改了一下,降到7000+降到6000+(单位毫秒)。从java这边没什么头绪,于是决定用C++玩一次,算法是一模一样的,直接降到100
2014-10-26 20:17:40
424
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人