随笔分类 -  大二算法

大二正式开始,算法学习也正式开始
Machine Schedule(二分图匹配之最小覆盖点,匈牙利算法)
摘要:个人心得:二分图啥的一点都不知道,上网借鉴了下,请参考http://blog.csdn.net/thundermrbird/article/details/52231639 加上自己的了解,二分图就是将图形拆分成俩半,俩边的点通过边界相连接。匹配就是不存在俩条边存在同一顶点,就是一个顶点最多连接一条 阅读全文

posted @ 2017-12-11 20:31 余生漫漫浪 阅读(274) 评论(0) 推荐(0)

变色DNA(最短路思维题)
摘要:个人心得:太水了,还是对最短路不太深入了解,无法构建出最短路模板,然后就是读题能力, 这题的关键在于转换为最短路模板,因为DFS我在24组超时了。 假设把从i到j的代价看做是权值,那么就是对权值的确立了,显而易见,权值跟前面出现的Y的个数有关。 权值建立后就可以用最短路了,特意看了下最短路深入了解了 阅读全文

posted @ 2017-12-09 18:50 余生漫漫浪 阅读(454) 评论(0) 推荐(0)

Clairewd’s message(哈希模板+)
摘要:个人心得:一开始就是知道用哈希,但是无从下手,很明显是对哈希不太了解和思维不太好。 先来看一下这一题涉及到的哈希吧和这题的思路吧,思路就是对所给的密文用原文和翻译后进行hash处理,那么必然存在后面那一段用所给的密文处理等于前面 长度相同的用解密后处理的hash值一样。 比如abcdab,那么必然a 阅读全文

posted @ 2017-12-04 19:59 余生漫漫浪 阅读(600) 评论(0) 推荐(0)

Built(最小生成树+构图离散化)
摘要:个人心得:看了题目很明确,最小生成树,但是但是周赛卡住了,因为10W的点若一个一个找出距离很明显内存和时间都炸了, 静下心来,画了下图,仔细一想,任意一个点都只会在她左右俩边选择建立联系,那么我们只要对做表X,Y分别排序然后再构建 距离,然后Kruaskal就OK了。 希望以后思维能够更活跃点,才能 阅读全文

posted @ 2017-12-04 19:54 余生漫漫浪 阅读(520) 评论(0) 推荐(0)

Palindrome Degree(hash的思想题)
摘要:个人心得:这题就是要确定是否为回文串,朴素算法会超时,所以想到用哈希,哈希从左到右和从右到左的key值一样就一定是回文串, 那么问题来了,正向还能保证一遍遍历,逆向呢,卡住我了,后面发现网上大神的秦九韶算法用上了,厉害了。 关于哈希,这题用的是最简单的哈希思想,就是用M取合理的素数,这题取得是3, 阅读全文

posted @ 2017-12-02 18:25 余生漫漫浪 阅读(458) 评论(0) 推荐(0)

字符串哈希算法(以ELFHash详解)
摘要:更多字符串哈希算法请参考:http://blog.csdn.net/AlburtHoffman/article/details/19641123 先来了解一下何为哈希: 哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映射到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表 阅读全文

posted @ 2017-12-02 10:57 余生漫漫浪 阅读(12843) 评论(1) 推荐(0)

Making Genome in Berland (DFS+思维)
摘要:个人心得:被这周的专题名坑了,一直用字典树,明明题目看得很清楚了,不存在相同的字母,即每个字母最多只有一个直接后驱,那么只要用DFS走开头就好了, 思想很巧妙,用vector,记录后驱,同时用visit确定是否访问和化简后的字符串谁是第一个开头,visit的值1表示单独存在的头,2表示是否访问,3是 阅读全文

posted @ 2017-11-30 20:56 余生漫漫浪 阅读(235) 评论(0) 推荐(0)

统计难题(字典树模板)
摘要:个人心得:先来了解下字典树的概念吧。 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 Trie的核心思想 阅读全文

posted @ 2017-11-29 19:21 余生漫漫浪 阅读(187) 评论(0) 推荐(0)

Buy Tickets(线段树单点更新,逆向思维)
摘要:题目大意:有n个的排队,每一个人都有一个val来对应,每一个后来人都会插入当前队伍的某一个位置pos。要求把队伍最后的状态输出。 个人心得:哈哈,用链表写了下,果不其然超时了,后面转念一想要用静态数组思维, 还是炸了。大牛们很给力,逆向一转,真是服气。 一想是呀,转过来的话那么此时的人必然可以得到他 阅读全文

posted @ 2017-11-27 20:42 余生漫漫浪 阅读(229) 评论(0) 推荐(0)

浅谈线段树离散化
摘要:先了解一下离散化的概念,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 就是他要求上限是10^9,但是可能真正用到的有用的点却只有几千或者几万而已,而如果你直接用上限来做的话,任何CPU都无法运行。 离散化在线段树方面有着很大的用途: 比如数据过大时,建立线段树无法开辟那么多单 阅读全文

posted @ 2017-11-27 19:26 余生漫漫浪 阅读(3186) 评论(0) 推荐(3)

Dijkstra算法(带路径模板)
摘要:个人心得:Dijkstra算法是贪心思想的一种延伸,注意路径pre,pre数组表示此时最短路径中的前一个顶点。每次更新到目的点时更新; 从源点出发,更新路径,然后找出此时最短的点,然后以这个点为头,看能否缩减路程, 阅读全文

posted @ 2017-11-25 20:05 余生漫漫浪 阅读(848) 评论(0) 推荐(0)

Fast Arrangement (线段树,延迟标志)
摘要:个人心得:线段树的延迟标志确实是减少了很多时间,思想比较简单,但是实现得时候和建立延迟的时候比较麻烦。 按照我的一些理解,就是更新时找到完全覆盖的区间时,更新延迟标志,不再往下更新,但此时父节点啥的都会更新,但是 递归思想到了这里还是会回去,所以在程序末尾进行往上更新就好了,同时,在查询的时候有延迟 阅读全文

posted @ 2017-11-25 14:57 余生漫漫浪 阅读(498) 评论(0) 推荐(0)

CodeForces - 484BMaximum Value(hash优化)
摘要:个人心得:周测题目,一题没出,难受得一批。这个题目做了一个半小时还是无限WR,虽然考虑到了二分答案这个点上面了, 奈何二分比较差就想用自己的优化,虽然卡在了a=k*b+c,这里但是后面结束了这样解决还是超时了,看了一下网上的hash,思想一样 但是却优化了很多,服气 题目: You are give 阅读全文

posted @ 2017-11-20 19:58 余生漫漫浪 阅读(242) 评论(0) 推荐(0)

二分答案(Widespread )
摘要:二分答案其实是变相贪心,这周算是被这个虐了,怎么都想不到,比如这题,一直纠结在最大值的贪心上后面队友一指点,原来可以先减去x*b,然后a-b随机分配就好了, 仔细一想没错呀,每次攻击必然受到x*b次伤害而剩下的x个a-b就可以随机分配给每个怪物,注意是成对分而不能求和。说下二分答案吧 二分前提 1. 阅读全文

posted @ 2017-11-16 21:34 余生漫漫浪 阅读(510) 评论(0) 推荐(0)

Dropping tests(二分加01数字)
摘要:个人心得:不能说题目太难,而是自己思维太菜,我开始以为这怎么都想不到的,但是学长说不是很简单吗,好吧我信了,我太low。 其实单纯二分只用于搜索,但是这种逆向答案二分确实比较难理解。给大神代码 【一些分析】 数学分析中一个很重要的方法就是分析目标式,这样我们来看目标式。 R=sigma(a[i]*x 阅读全文

posted @ 2017-11-15 19:27 余生漫漫浪 阅读(440) 评论(0) 推荐(0)

ZOJ-Big string(服气思维)
摘要:个人心得:我在分治上看到的,但是感觉跟分治没关系,一眼想到斐波那契数可以找到此时n的字符串,但是无法精确到字母,题解的思路 真是令人佩服,以BA为基准,然后只要此时的长度大于7那么必然可以减去最大的斐波那契数然后转换为基准,此时直接输出就好了。服气服气 题目: We will construct a 阅读全文

posted @ 2017-11-12 21:05 余生漫漫浪 阅读(232) 评论(0) 推荐(0)

选择第n大的数(分治法和排列实现)
摘要:个人心得:在买的书上看到的一个经典分治题,题目意思就是给定一个数组,求第k小的数。 第一反应就是排序,然后返回第k-1位置的数就可以了,这样算法的复杂度是nlongn,在快速排序的基础下还是挺不错的。 不过为了学习分治法还是换种思路,这也是建立在快速排序的方法,因为快排是以第一个作为标准,比他小的数 阅读全文

posted @ 2017-11-12 19:47 余生漫漫浪 阅读(1366) 评论(0) 推荐(0)

Block Towers (思维实现)
摘要:个人心得:这题没怎么看,题意难懂。后面比完再看的时候发现很好做但是怎么卡时间是个问题。 题意:就是有m个可以用2层积木的,n个可以用三层积木的,但是他们不允许重复所以可以无限添加。 比如 3 2 一开始是2层的开始2,然后 3,然后 4,此时再添加都一样了,为了保证最小高度所以3+3=6,此时的2层 阅读全文

posted @ 2017-11-05 18:03 余生漫漫浪 阅读(432) 评论(0) 推荐(0)

Too Rich(贪心加搜索)
摘要:个人心得:10月份月赛题目,很low,就过了一道水题而且是把所有猜测都提交才过的。这段时间不知道忙什么去了, 也没怎么刷题感觉自己越来越差,还不如新来的大一学弟呢,别人起码天天刷代码到半夜,比起刚在区域赛拿银的学长们, 溜了溜了。慢慢磨练吧。 题目心得:这题意思很简单,就是用最多的硬币去负款,我比赛 阅读全文

posted @ 2017-11-05 17:57 余生漫漫浪 阅读(515) 评论(0) 推荐(0)

ZOJ Anagrams by Stack(堆栈中的搜索)
摘要:个人心得:算法书中的第一个例题就来了一个下马威,虽然题意很好理解但是做起来确实这么不顺手,所以自己对于搜索和堆栈理解的并不是很好, 以前也是很多这样的题目无法实施,这题要做的很明确就是输出正确的能依靠栈完成字符串的变化,很明显答案很多所以必须搜索确定出栈的位置, 但是自己无法控制好搜索,题解很清晰, 阅读全文

posted @ 2017-10-30 19:29 余生漫漫浪 阅读(321) 评论(0) 推荐(0)