摘要: 八皇后问题是入门回溯法的经典问题,本文借用八皇后问题来阐述一下笔者对于八皇后问题的一些看法。 在我看来,回溯法有点像高中时候的排列组合,都是可以在有限的步骤中完成,而每一步有只有有限的选择,这句话也构成了回溯法的核心。 每一次成功的放置,代表着解答树上某一个节点的产生:下面结合八皇后问题来描述 先来 阅读全文
posted @ 2019-03-03 20:58 Toretto瑞 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 求自己总共有三种方式: 增量构造 位向量 二进制 首先假设集合A中有n个元素,而且是非重集,一个下标唯一对应一个元素,那么求A的子集就变成了求0~n-1的子集。这个思想对于所有的三种方式都是通用的。 第一种增量构造法的思想是,每一次都从0~n-1中挑出一个元素来,每挑一次,就是一个集合。然后再挑元素 阅读全文
posted @ 2019-03-03 18:35 Toretto瑞 阅读(2909) 评论(0) 推荐(0) 编辑
摘要: 一共有三种求全排列的方式: 第一种就是只适合用于非可重集的DFS实现 第二种就是可以用于可重集上的刘汝佳书上的代码 第三种就是STL中的next——permutation 在对这三种方式做了比较之后发现: DFS实现的效率最高,当n = 10的时候耗时才不到2s,但是n = 11的时候耗时14s 这 阅读全文
posted @ 2019-03-03 17:03 Toretto瑞 阅读(977) 评论(0) 推荐(0) 编辑
摘要: 大整数类主要就是运算符的重载问题,除<<和>>外其他的符号都要写在struct的外面,而且只要定义了一个<符号之后,其它的符号都可以根据<的关系推导出来 下面贴上代码 注意给字符串赋值的时候,如果声明就开始赋值,那么必须得定义一个函数BigInteger(string/char[]/long lon 阅读全文
posted @ 2019-02-23 15:37 Toretto瑞 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 总的来说:STL中最有用的几个东西是:sort()函数,set vector map string等容器,并且某些数据进入到这些容器后,相当于保存进了这个容器。 但是STL有时候会很慢,特别是sstream是非常的慢的。 当需要比较的时候,才使用string,不需要的时候,使用char[]就可以了, 阅读全文
posted @ 2019-02-23 13:47 Toretto瑞 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 先来看sstream的使用 上面就是完整代码,用来解决一行的正式相加的问题。 上面有个细节是:x已经是整数了,不需要再去-'0'。 但是使用sstream的方式太慢了 下面来看使用getchar()函数的方式: 上面的readchar()函数的作用是,遇到空格就跳过,遇到回车就返回0退出;这种方式非 阅读全文
posted @ 2019-02-22 09:34 Toretto瑞 阅读(211) 评论(0) 推荐(0) 编辑