08 2017 档案

卿学姐与魔法(优先队列)
摘要:个人心得:思路很简单,不过就是会超时,而且直接用数组的话肯定不够大。 所以就用优先队列,让里面只装N个数就好了,然后再次添加时进行比较,比他小就放进去。 不过这样超时,所以先将A,B排序,然后只要比队首大就break就可以过了。 “你的膜法也救不了你 在去拯救公主的道路上,卿学姐披荆斩棘,刀刃早已锈 阅读全文

posted @ 2017-08-25 18:11 余生漫漫浪 阅读(208) 评论(0) 推荐(0)

H国的身份证号码(搜索)
摘要:个人心得:巧妙利用数字进行维护就好了,深搜还是有点心得的; #1558 : H国的身份证号码I #1558 : H国的身份证号码I 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 H国的身份证号码是一个N位的正整数(首位不能是0)。此外,由于防伪需要,一个N位正整数是合 阅读全文

posted @ 2017-08-25 18:09 余生漫漫浪 阅读(1668) 评论(0) 推荐(0)

钓鱼(贪心,优先队列)
摘要:题意描述: john现有h个小时的空闲时间,他打算去钓鱼。john钓鱼的地方共有n个湖,所有的湖沿着一条单向路顺序排列(john每在一个湖钓完鱼后,他只能走到下一个湖继续钓), john必须从1号湖开始钓起,但是他可以在任何一个湖结束他此次钓鱼的行程。john在每个湖中每5分钟钓的鱼数(此题中以5分 阅读全文

posted @ 2017-08-24 21:03 余生漫漫浪 阅读(628) 评论(0) 推荐(0)

Communication System(动态规划)
摘要:个人心得:百度推荐的简单DP题,自己做了下发现真得水,看了题解发现他们的思维真得比我好太多太多, 这是一段漫长的锻炼路呀。 关于这道题,我最开始用DP的思路,找子状态,发现自己根本就不会找DP状态数组建立,怎么找都是被后面的给打乱了, 看到了网上的DP【i】【j】,i表示前几个设备,宽带为j的最少花 阅读全文

posted @ 2017-08-22 16:50 余生漫漫浪 阅读(437) 评论(0) 推荐(1)

最长连续01字符串
摘要:个人心得:思维比较混乱,已经慢慢找到了一特点就是这子字符串满足1,0数目相等,所将0用-1代替,则此时 sum【l-1】=sum【r】,然后想到这里还是要用俩重循环,还会超时,后面看了题解,他是用min,max数组记录相等 sum的位置,只要存在相等的sum然后循环一次取最大的差值就好了,真的是感觉 阅读全文

posted @ 2017-08-22 09:53 余生漫漫浪 阅读(2194) 评论(0) 推荐(0)

魔法跳舞链 (最小生成树)
摘要:个人心得:周测的时候心情有点闷,看到就不想去做,比完后第二天拿着一做,这么简单,我也是醉了。 虽然最后一周了,但是我还是希望你能稳住别被其他事扰乱军心了,希望以后的你能够静下心去思考。 这题:就是用Kruskal算法第一遍找出最大值中的最小值,第二次再反过来用一次就好了。 51nod魔法学校近日开展 阅读全文

posted @ 2017-08-22 08:24 余生漫漫浪 阅读(283) 评论(0) 推荐(0)

括号匹配(线段树)
摘要:个人心得:近期状态不佳,不光题目看错而且思维也是很凌乱,赶紧把杂事解决好认真锻炼思维吧。 这一题我真的是想不到用线段树的,贼水,看题解也看了半天,因为若不满足的话必须在改变的俩个数之间 存在着i使前面的多一个“)“,所以只需要用线段树进行最小值维护就好了 首先预处理出一个前缀和sum【i】,设定(表 阅读全文

posted @ 2017-08-21 20:17 余生漫漫浪 阅读(498) 评论(0) 推荐(0)

合唱队形(解题思维的锻炼)
摘要:个人心得:周测时,这一题我是做了很久的,在一步一步纠正错误,本来以为用基本的动态规划,当满足俩边比前面大或者小的时候状态 转移,后面发现其实这样的动态转移不具有无后效性,有时去掉以后还可能影响结果,后面又想到了最长递增序列,一下子脑洞大开, 对呀,正反同时求以一个数为尾的递增数列不就得了,然后在递归 阅读全文

posted @ 2017-08-18 20:02 余生漫漫浪 阅读(2782) 评论(0) 推荐(0)

Cow Exhibition (背包中的负数问题)
摘要:个人心得:背包,动态规划真的是有点模糊不清,太过于抽象,为什么有些是从后面递推, 有些状态就是从前面往后面,真叫人头大。 这一题因为涉及到负数,所以网上大神们就把开始位置从10000开始,这样子就转变为了由一个正数背包装的最大值构成的背包问题了, 只要对于正数背包中的容积加价值相加就可以了,还是不太 阅读全文

posted @ 2017-08-17 16:28 余生漫漫浪 阅读(1302) 评论(0) 推荐(0)

Investment(完全背包)
摘要:个人心得:炸了炸了,这背包什么的脑阔痛。 完全背包什么鬼咯,状态正向转移与01背包正好相反。 二维数组的状态转移。 一维数组的优化,注意正向覆盖。 本题中的思想 John never knew he had a grand-uncle, until he received the notary's 阅读全文

posted @ 2017-08-17 09:30 余生漫漫浪 阅读(481) 评论(0) 推荐(0)

Cash Machine(多重背包二进制转换)
摘要:个人心得:多重背包,自己根据转换方程写总是TLE,后面去网上看了二进制转换,不太理解; 后面仔细想了下,用自己的思想理解下把,就是将对应number,cash总和用二进制拆分, 然后全部装入到一个数组,这样子就可以减少循环,同时转变为01背包,这样子想把, 5 5,就变成了5,10,20,5然后用0 阅读全文

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

Milking Time(DP)
摘要:个人心得:一开始自己找状态,是这么理解的,只要前面一个满足就等于此时的值加上d(n-1),否则就是不挖此时的比较d(n-1)和 d(n-2)+cost,不过仔细一想忽略了很多问题,你无法确定n-2和此时的n是否可以一起挖,同时跳跃性的递归无法比较, 后面参考了网上的递推,他是确定这个n必须挖的最大值 阅读全文

posted @ 2017-08-16 16:41 余生漫漫浪 阅读(196) 评论(0) 推荐(0)

Brackets Sequence(升级版)
摘要:个人心得:又是途径问题,我怕是又炸了。看了题解他的意思就是找出最短的添加顺序的断点,则只要 根据断点添加就好了,注意递归的奥妙之处吧,暂时还真得是拿他没办法。 题目描述: 定义合法的括号序列如下: 1 空序列是一个合法的序列 2 如果S是合法的序列,则(S)和[S]也是合法的序列 3 如果A和B是合 阅读全文

posted @ 2017-08-16 15:14 余生漫漫浪 阅读(509) 评论(0) 推荐(0)

Brackets (区间DP)
摘要:个人心得:今天就做了这些区间DP,这一题开始想用最长子序列那些套路的,后面发现不满足无后效性的问题,即(,)的配对 对结果有一定的影响,后面想着就用上一题的思想就慢慢的从小一步一步递增,后面想着越来越大时很多重复,应该要进行分割, 后面想想又不对,就去看题解了,没想到就是分割,还是动手能力太差,还有 阅读全文

posted @ 2017-08-16 10:30 余生漫漫浪 阅读(339) 评论(0) 推荐(0)

Cheapest Palindrome(区间DP)
摘要:个人心得:动态规划真的是够烦人的,这题好不容易写出了转移方程,结果超时,然后看题解,为什么这些题目都是这样一步一步的 递推,在我看来就是懵逼的状态,还有那个背包也是,硬是从最大的V一直到0,而这个就是从把间距为1到ch.size()全部算出来,难道 这就是动态规划,无后效性,即每一步都是最优的状态, 阅读全文

posted @ 2017-08-16 09:13 余生漫漫浪 阅读(294) 评论(0) 推荐(0)

饭卡(01背包问题)
摘要:网上分析: 设余额为m,令s=m-5,那么我们就要找使得容量为s的背包最后剩的空间最小的方法,找到之后再用这个剩余容量+5-最大的那个没有被选的商品价值就是最小余额. 但是现在我们不知道最后需要减的那个物品应该是哪个,可以证明最后需要减的那个物品一定是价值最大的那个.证明: 假设价值最大的为max, 阅读全文

posted @ 2017-08-14 19:39 余生漫漫浪 阅读(1161) 评论(0) 推荐(0)

滑雪(经典DP思想)
摘要:个人心得:思想还是不够,开始自己写但是不知道如何记录长度,也不太知道状态的转移,后面看了百度, 发现人人为我我为人人就是一步一步推导, 而递归思想就要求学会记录和找到边界条件,这一题中的话就是用递归,记录他四个方向中最大的那个,然后此时的状态再加一就可以了。 Michael喜欢滑雪百这并不奇怪, 因 阅读全文

posted @ 2017-08-14 10:09 余生漫漫浪 阅读(553) 评论(0) 推荐(0)

动态三角形(动态规划思想入门)
摘要:个人心得:动态规划是一种隶属于决策学的一个算法思想,他能够很好的解决多阶段决策问题,这种思想对于我们的生活还是科研都是必不可少的, 需要好生体会,学会动态方程的转移,做到具体问题具体分析。 那这简单题目来看吧,动态三角形,很明显从第一个开始就可以看出来第一个等于下面俩个对角线中最大与自己相加,所以可 阅读全文

posted @ 2017-08-12 11:23 余生漫漫浪 阅读(1846) 评论(0) 推荐(0)

百度之星资格赛
摘要:个人心得:这题还是挺好的线段树题目,周测的时候傻逼了,忘记了终止输入框一直就是output limit exceed,害的自己一直在改进输出系统, 还把每条指令都放在一个结构体里去了,进行判断。不过一开始也超时了是因为把线段树的建立和字符数组的插入分开放了,(插入代码时PS:说错了, 分开放也是过了 阅读全文

posted @ 2017-08-11 20:36 余生漫漫浪 阅读(193) 评论(0) 推荐(0)

Audiophobia(Floyd算法)
摘要:个人心得:这在一定途径上完成查询方面还是很吃力,得多锻炼空间能力,不能再每次都看到就后退,要全力应对, 那怕被虐的不要不要的。 这题主要是求俩个端点中所有路径中最大构成的集合中最小的数值,其实开始思想已经到触及到了这一块, 就想着从一直衍生每次都是max更新,但最终点那里还是卡了一下,还有自己的算法 阅读全文

posted @ 2017-08-11 20:28 余生漫漫浪 阅读(530) 评论(0) 推荐(0)

Hat’s Words(字典树的运用)
摘要:个人心得:通过这道题,对于树的运用又加深了一点,字典树有着他独特的特点,那个指针的一直转换着实让我好生想半天, 不得不佩服这些发明算法人的大脑。 这题的解决方法还是从网上找到的,还好算法是自己实现得,没错!组合体只要进行分割再暴力搜索就好了, 步骤就是根据得到的字符串建立字典树,然后一一找寻时,一次 阅读全文

posted @ 2017-08-10 19:17 余生漫漫浪 阅读(938) 评论(0) 推荐(0)

Mayor's posters (线段树加离散化)
摘要:个人心得:线段树也有了一定的掌握,线段树对于区间问题的高效性还是挺好的,不过当区间过大时就需要离散化了,一直不了解离散化是什么鬼,后面去看了下 离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。例如: 阅读全文

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

Balanced Lineup(线段树的简单了解)
摘要:个人心得:线段树就是将一段序列拆分为一个个单独的节点,不过每俩个节点又可以联系在一起,所以就能很好的结合,比如这一题, 每次插入的时候都将这一段区间的最大最小值更新,就能大大减少时间。 这个线段树建立是以数组的,根节点为0,后面每次都是父节点*2+1/2。 这题简单的教会了我如何创建线段树,以及一些 阅读全文

posted @ 2017-08-09 16:17 余生漫漫浪 阅读(529) 评论(0) 推荐(0)

一个人的旅行
摘要:个人心得:不得不承认,有关平面图形空间感啥还是有很多不足,因为不足所以都不能很好把问题转化,更不能知道如何去想出方法,很无奈呀,得多想想这些方面了; 这一题一是不会很好的运用最短路算法,二是没能够很好的把问题转化。 后面看了题解才发现可以这样,可以将自己城镇到相邻的城镇也变成一条路径,这样求到所要去 阅读全文

posted @ 2017-08-09 09:49 余生漫漫浪 阅读(196) 评论(0) 推荐(0)

Til the Cows Come Home (最短路模板题)
摘要:个人心得:模板题,不过还是找到了很多问题,真的是头痛,为什么用dijkstra算法book【1】=1就错了..... 纠结中.... Bessie is out in the field and wants to get back to the barn to get as much sleep a 阅读全文

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

畅通工程再续 (kruskal算法的延续)
摘要:个人心得:这题其实跟上一题没什么区别,自己想办法把坐标啥的都给转换为对应的图形模样就好了 相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现。现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全畅通!经过 阅读全文

posted @ 2017-08-07 20:12 余生漫漫浪 阅读(248) 评论(0) 推荐(0)

还是畅通工程(peime算法最小生成树)
摘要:个人心得:就是最小生成树的运用,还是要理解好每次都是从已搭建好的生成树里面选择与她的补集中最短距离,所以那个book数组的更新 需要好生体会。不过还是有缺陷,算法的复杂度为O(n^2),看介绍说用优先队列加堆会达到O(n*long n),不过很可惜看不懂,太菜了 某省调查乡村交通状况,得到的统计表中 阅读全文

posted @ 2017-08-07 19:32 余生漫漫浪 阅读(334) 评论(0) 推荐(0)

畅通工程(kruskal算法)
摘要:个人心得:日了狗,WR了俩个小时才发现是少了个vector清理,我也是醉了,不过后面还是对这个有了更好得了解,一是我得算法,而是学长改进 后的算法,改进后得算法还要判断所有村庄是否在连在一起,其实我觉得实必要性不大。 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的 阅读全文

posted @ 2017-08-07 19:28 余生漫漫浪 阅读(353) 评论(0) 推荐(0)

The Suspects (并查集)
摘要:个人心得:最基础的并查集经典题。借此去了解了一下加深版的即加权并查集,比如食物链的题目,这种题目实行起来还是有 一定的难度,不仅要找出与父节点的关系,还要在路径压缩的时候进行更新,这一点现在还是没那么上手,不过先知道思维 还是好的吧。这道水题就不多提了...就是注意合并的时候以数小的为跟节点就好了 阅读全文

posted @ 2017-08-06 20:05 余生漫漫浪 阅读(249) 评论(0) 推荐(1)

The Sum of 0 for four numbers(拆解加二分思想)
摘要:个人心得:单纯用二分法一直超时,后面发现我的那种方法并没有节省多少时间,后面看了大神的代码,真的是巧妙, 俩个数组分别装a+b,c+d。双指针一个指向最后,从第一个开始想加,加到刚好大于0停止,再看是否存在和为0的情况。 很巧妙,因为此时i,j所指想加刚好大于0,因为是排完序的,所以i往后面走的时候 阅读全文

posted @ 2017-08-04 18:58 余生漫漫浪 阅读(569) 评论(0) 推荐(0)

Rebranding(字母代换)
摘要:个人心得:题目意思就是每次给出可以互换的字母,如果每次命令的时候就执行的话一定会超时。 所以我就是将输入的字母从a到z的数目和路径依次保存,再建立一个book数组表示字母现在所指的字母 ,一开始就直接数组转换结果超时了,有一点并查集的思想。 就比如说 a b转换,a 此时有3个,分别为1,3,5。b 阅读全文

posted @ 2017-08-04 18:52 余生漫漫浪 阅读(448) 评论(0) 推荐(0)

最长公共子序列和最长公共子串
摘要:子串就是要连在一起的,而子序列就是满足这同时在1-n的母串中存在就好了。 比如abcdefg 子串有abc 子序列acdfg 动态规划 假设Z=<z1,z2,⋯,zk>是X与Y的LCS, 我们观察到 如果Xm=Yn,则Zk=Xm=Yn,有Zk−1是Xm−1与Yn−1的LCS; 如果Xm≠Yn,则Zk 阅读全文

posted @ 2017-08-03 20:15 余生漫漫浪 阅读(204) 评论(0) 推荐(0)

最大连续子序列和
摘要:给定k个整数的序列{N1,N2,...,Nk },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= k。最大连续子序列是所有连续子序中元素和最大的一个,例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{11,- 阅读全文

posted @ 2017-08-02 20:42 余生漫漫浪 阅读(224) 评论(0) 推荐(0)

找新朋友(欧拉函数)
摘要:新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都是新朋友,现在会长想知道究竟有几个新朋友?请你编程序帮会长计算出来。 Input第一行是测试数据的组数CN(Case num 阅读全文

posted @ 2017-08-02 15:10 余生漫漫浪 阅读(252) 评论(0) 推荐(0)

容斥原理
摘要:在计数时,必须注意没有重复,没有遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。 也可表示为 设S为有 阅读全文

posted @ 2017-08-02 15:07 余生漫漫浪 阅读(349) 评论(0) 推荐(0)

越狱(快速幂)
摘要:监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 Input 输入两个整数M,N.1<=M<=10^8,1<=N<=10^12 Output 可能越狱的状态数,模100003取余 阅读全文

posted @ 2017-08-02 10:40 余生漫漫浪 阅读(349) 评论(0) 推荐(0)

快速幂的知识点
摘要:快速幂,顾名思义,快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。 快速幂运用了位运算。 例如 11的二进制是1011 11 = 2³×1 + 2²×0 + 2¹×1 + 2º×1 因此,我们将a¹¹转化为算 这样就大大的减少了运算的步数。 阅读全文

posted @ 2017-08-02 10:37 余生漫漫浪 阅读(276) 评论(0) 推荐(0)

Number Sequence (KMP的应用)
摘要:个人心得:朴素代码绝对超时,所以要用到KMP算法,特意了解了,还是比较抽象,要多体会 Given two sequences of numbers : a11, a22, ...... , aNN, and b11, b22, ...... , bMM (1 <= M <= 10000, 1 <= 阅读全文

posted @ 2017-08-01 20:34 余生漫漫浪 阅读(253) 评论(0) 推荐(0)

Knuth-Morris-Pratt 算法
摘要:KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函 阅读全文

posted @ 2017-08-01 20:33 余生漫漫浪 阅读(533) 评论(0) 推荐(0)