随笔分类 -  算法学习笔记

摘要:首先先说明一下01背包和完全背包问题的区别01背包:有 N 件物品和一个容量为 V 的背包。放入第 i 件物品耗费的费用是 Ci,得到的价值是 Wi。求解将哪些物品装入背包可使价值总和最大。(可以不装满)完全背包:有 N 种物品和一个容量为 V 的背包,每种物品都有无限件可用。放入第 i 种物品 的... 阅读全文
posted @ 2015-04-18 13:54 雨尘之林 阅读(873) 评论(1) 推荐(0)
摘要:1101. SuperXORDescriptionPangzi recently realized that bitwise XOR operation is just an addition without carries. For example, when computing (1001)_2... 阅读全文
posted @ 2015-04-16 23:46 雨尘之林 阅读(584) 评论(0) 推荐(0)
摘要:1256. 你的魔戒?不,是你的魔戒。加强版Description在前往末日火山的途中,佛罗多与他的霍比特人同胞不幸被半兽人抓住了。半兽人要对每个霍比特人进行询问,以找出哪个霍比特人携带了至尊魔戒。每个霍比特人可能会说以下几种话:I have the ring. 我有魔戒。I have not th... 阅读全文
posted @ 2015-04-16 20:58 雨尘之林 阅读(580) 评论(1) 推荐(0)
摘要:1254. 传手绢Description活动的时候,老师经常带着同学们一起做游戏。这次,老师带着同学们一起传手绢。游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着手绢,当老师吹哨子时开始传,每个同学可以把手绢传给自己左右的两个同学中的一个(左右任意),当老师在此吹哨子时,游戏停止,此时... 阅读全文
posted @ 2015-04-16 20:41 雨尘之林 阅读(784) 评论(4) 推荐(0)
摘要:SJTU OJ1133. 数星星Description主任和小伙伴晚上非常无聊,于是带着他的宠物狗出来走走。主任突然发现天空中有一条长度为N的字符串,里面的字符都是大写字母。于是主任和他的小伙伴们开始数星星(STAR)。主任和他的小伙伴还有宠物狗数星星的数法不太一样。小伙伴是一个很教条的人,他只喜欢... 阅读全文
posted @ 2015-04-16 20:17 雨尘之林 阅读(731) 评论(0) 推荐(0)
摘要:贪心法:贪⼼算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪⼼心策略的选择,选择的贪⼼策略必须具备⽆后效性,即某个状态以后的过程不会影响以前的状态,只... 阅读全文
posted @ 2015-03-31 21:10 雨尘之林 阅读(6341) 评论(0) 推荐(1)
摘要:在吴学长的代码上做了一点简化修改,本质一样。在外面铺了一圈0,让代码更简单一点,不用考虑边界情况了。题目: http://acm.sjtu.edu.cn/OnlineJudge/problem/1002#include #include using namespace std;int main(in... 阅读全文
posted @ 2015-03-31 18:24 雨尘之林 阅读(602) 评论(0) 推荐(0)
摘要:http://acm.sjtu.edu.cn/OnlineJudge/problem/1280题目的描述比较逗比,核心的数学问题是这样的:一个数集M(此处集合可以认为元素之间没有互异性),有N个元素,从中取出t个元素(t!=0),使得它们的和是F的倍数。输出所有取法的个数除以1e8之后的余数。*/... 阅读全文
posted @ 2015-03-30 14:42 雨尘之林 阅读(447) 评论(0) 推荐(0)
摘要:二分查找的两种写法,递归和普通循环~ 大部分情况下都用普通的循环,因为递归法费空间。/* 时间复杂度: 1.最坏情况 查找最后一个元素(或者第一个元素) Master定理 T(n)=T(n/2)+O(1) 这个O(1)是判断 所以 T(n)=O(logn) ... 阅读全文
posted @ 2015-02-16 18:11 雨尘之林 阅读(318) 评论(0) 推荐(0)
摘要:第一种方法, 主要是分组每组五个排序,取中位数,再取中位数的中位数然后进行分割,根据MoM和k的比较进行递归查找。但是貌似当数量一大的时候,容易出现问题。暂时留有一定的疑问。这个的复杂度也是O(n)。//选择排序void SelectSort(long* A,int len=5){ for (... 阅读全文
posted @ 2015-02-16 15:50 雨尘之林 阅读(445) 评论(0) 推荐(0)
摘要:先放上老版代码,这个并不好,由于用到了各种指针和动态数组申请和释放,容易出现问题,不如第二种方法直接用临时数组来解决这个问题老版://归并 left是左边数组 left_len长度int* Merge(int* left,int left_len, int* right,int right_len)... 阅读全文
posted @ 2015-02-16 15:29 雨尘之林 阅读(254) 评论(0) 推荐(0)
摘要:第一种就是纯粹的暴力枚举起始、终点。 O(n^3) 第二种在第一种的基础上先进行初始化,将以第一个元素为起点,所有元素为终点的所有子列和存储在S数组中,所以在第三层循环中计算子列和是直接用S[j]-S[i-1]即可,这是利用了空间去换时间。O(n^2) 第三种也是O(n^2),但是在第二种的基础上, 阅读全文
posted @ 2015-02-15 18:27 雨尘之林 阅读(300) 评论(0) 推荐(0)
摘要:/*因为注释很详细,就直接上代码了,需要注意的是,用了白书的三种方法来进行判重,其中最快捷的方法还是stl的set,还有哈希技术涉及到了多个链表的处理,还有一种就是编码解码技术,这个需要找到一个非常好的函数才能达到一一对应。而哈希表不需要一一对应(因为有链表)。*///// main.cpp// ... 阅读全文
posted @ 2015-02-14 18:43 雨尘之林 阅读(284) 评论(0) 推荐(0)
摘要:题目http://codevs.cn/problem/1288/卧槽。整了一天还是没全 AC 后面多层的时候不知道问题出在哪里了,跑不出来。这个题的难点在于解答树的每一层都是无穷多,这导致我们必须要强烈的剪枝!否则绝对没有办法跑完。由于题目的特殊性(拆分),所以我们要尽量剪枝,估计是因为我这个剪的还... 阅读全文
posted @ 2015-02-11 20:29 雨尘之林 阅读(279) 评论(0) 推荐(0)
摘要:在之前的 N 皇后和困难的串问题中,回溯法都是在解决可行性约束。换一句话说,对于回溯点的判断是用来验证此点是否合法。但是在一些优化问题的求解过程中,每一个点都是合法的,所以我们要进行剪枝。1.先得到一个解。(一般情况下不是最优解,实现细节:用一个极大的数先作为结果。)2.在回溯的过程中,判断继续进行... 阅读全文
posted @ 2015-02-10 18:53 雨尘之林 阅读(420) 评论(0) 推荐(0)
摘要:发现好久没来更新了,开学之后各种杂事,好久都没学习算法了,还好最近马上要学习计导里有关算法的部分了。明天还要预习一下,今天先暂时把上次写完的困难的串(“好久之前的事”)更新一下,再在十一假期中强烈补充算法知识。困难的串仍然是回溯法的部分,既然是回溯法那么就要DFS然后及时返回。题目:如果一个字符串包... 阅读全文
posted @ 2014-09-26 23:25 雨尘之林 阅读(672) 评论(0) 推荐(0)
摘要:回溯法的含义 百度百科回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。在包含问题的所有解的解空间树中,按照深度... 阅读全文
posted @ 2014-09-03 21:35 雨尘之林 阅读(941) 评论(0) 推荐(0)
摘要:子集的生成实例input4output 11 21 2 31 2 3 41 2 41 31 3 41 422 32 3 42 433 44请按任意键继续. . .(第一行是空行表示空集)第一种方法:增量构造法顾名思义,就是要用不断在已有子集的基础上不断增加新元素一直到无法继续增加时为止(这种方法的递... 阅读全文
posted @ 2014-08-29 22:26 雨尘之林 阅读(1167) 评论(0) 推荐(0)
摘要:所谓暴力求解法,大意应该是根据提议分析出的所有可能的情况(优化过的研究域)来一一研究,得到最终结果。第一节呢就是枚举排列。这里的排列指的是一个集合的元素中根据字典序进行排列。用wikioi的一道题来进行解释吧样例输入 Sample Input3样例输出 Sample Output1 2 31 3 2... 阅读全文
posted @ 2014-08-26 22:26 雨尘之林 阅读(312) 评论(0) 推荐(0)
摘要:= ,= 妈蛋,拓扑排序和欧拉回路先放一放,实在有点力不从心。先继续学习暴力破解法。在那之前,把八连块和走迷宫先记录一下。八连块,此名字十分坑爹,其实只要是连着的黑色区域都叫做一个八连块。计算一个图中黑色八连快的个数,分析:利用DFS的思想来从0,0起点遍历整个图,遍历的过程中先是寻找到一个没有被访... 阅读全文
posted @ 2014-08-16 18:14 雨尘之林 阅读(258) 评论(0) 推荐(0)