随笔分类 -  算法

摘要:KMP:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html 阅读全文
posted @ 2018-07-08 18:06 swallowblank 阅读(67) 评论(0) 推荐(0) 编辑
摘要:RMQ问题(区间最值问题Range Minimum/Maximum Query) ST算法 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列a,回答若干询问RMQ(A,i,j)(i, j<=n),返回数列a中下标在i,j之间的最小 阅读全文
posted @ 2018-02-06 20:35 swallowblank 阅读(160) 评论(0) 推荐(0) 编辑
摘要:136. Single Number 意思就是给你一堆数,每个数都出现了两次,只有一个数只出现了一次,找出这个数 位运算(和c艹一样) &:按位与 |:按位或 ^:异或(一样为0,不一样为1) 再说一下异或的性质,满足交换律和结合律 因此: 对于任意一个数n n ^ 0 = n n ^ n = 0 阅读全文
posted @ 2018-02-01 13:16 swallowblank 阅读(182) 评论(0) 推荐(0) 编辑
摘要:题目大意 给你接下来每一天的气温,求出对于每一天的气温,下一次出现比它高气温的日期距现在要等多少天 解题思路 利用单调栈,维护一个单调递减的栈 将每一天的下标i入栈,维护一个温度递减的下标 若下一个温度p,比栈顶元素对应的温度p'要高,就出栈,且p就是p'的最近的“高温” 代码实现 1 from c 阅读全文
posted @ 2018-01-30 23:36 swallowblank 阅读(326) 评论(0) 推荐(0) 编辑
摘要:注:转载自:https://www.cnblogs.com/love-yh/p/7072161.html 阅读全文
posted @ 2018-01-26 15:07 swallowblank 阅读(288) 评论(0) 推荐(0) 编辑
摘要:最长连续子数列和 -2 6 -1 5 4 -7 2 3 求连续的子数列最大和。 根据递归的思路想:f(n) = max{ f(n-1) + num[n], num[n] } hdu1506 Largest Rectangle in a Histogram 对于每一个高度h[i],搜索它能到达的最左, 阅读全文
posted @ 2018-01-23 12:30 swallowblank 阅读(211) 评论(0) 推荐(0) 编辑
摘要:题目大意: 给出a, b两个用字符串表示的虚数,求a*b 题目思路: 偷了个懒,Python3的正则表达式匹配了一下,当然acm里肯定是不行的 阅读全文
posted @ 2018-01-19 11:54 swallowblank 阅读(164) 评论(0) 推荐(0) 编辑
摘要:654. Maximum Binary Tree 题目大意: 意思就是给你一组数,先选一个最大的作为根,这个数左边的数组作为左子树,右边的数组作为右子树,重复上一步。 读完就知道是递归了。 这个题真尼玛恶心,对JavaScript的友好度简直为0,用Js的可以直接放弃了。 时间复杂度应该是小于n2的 阅读全文
posted @ 2018-01-19 11:15 swallowblank 阅读(120) 评论(0) 推荐(0) 编辑
摘要:题目大意: 就是一个由1和0组成的正方形矩阵,求里面最大的加号的大小,这个大小就是长度。 什么鬼啊,本来想自己想的,结果看了半天没看懂具体什么意思,然后查了下题解,希望有人说一下意思,结果一上来就是思路,还直接动态规划四个大字,我也是呵呵了 思路一:暴力Brute Force 就是用i, j 循环每 阅读全文
posted @ 2018-01-17 21:58 swallowblank 阅读(379) 评论(0) 推荐(0) 编辑
摘要:我一开始看数据范围很小,没怎么想就直接暴力了。 暴力的思路是: 对于每一段S的前缀,这个前缀中的每一个字母都不应该在前缀的补集中出现,所以直接循环i:0 to S.length然后对于每一次循环,再循环前缀中的每一个字母,判断是否在后面出现,如果出现就 说明该前缀不合适继续向后循环,如果没有出现就加 阅读全文
posted @ 2018-01-16 23:23 swallowblank 阅读(381) 评论(0) 推荐(0) 编辑
摘要:假设数组a[1..n],那么查询a[1]+...+a[n]的时间是log级别的,而且是一个在线的数据结构,支持随时修改某个元素的值,复杂度也为log级别。 来观察这个图: 令这棵树的结点编号为C1,C2...Cn。令每个结点的值为这棵树的值的总和,那么容易发现: C1 = A1 C2 = A1 + 阅读全文
posted @ 2017-10-31 10:04 swallowblank 阅读(130) 评论(0) 推荐(0) 编辑
摘要:D. String Game time limit per test 2 seconds memory limit per test 512 megabytes input standard input output standard output D. String Game time limit 阅读全文
posted @ 2017-07-30 15:54 swallowblank 阅读(178) 评论(0) 推荐(0) 编辑
摘要:Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 15962 Accepted: 9237 Time Limit: 3000MS Memory Limit: 65536K Total Submis 阅读全文
posted @ 2017-07-30 15:53 swallowblank 阅读(274) 评论(0) 推荐(0) 编辑
摘要:寻找素数对 HDU1262 哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数. 做好了这件实事,就能说明这个猜想是成立的. 由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最 阅读全文
posted @ 2017-07-30 15:52 swallowblank 阅读(196) 评论(0) 推荐(0) 编辑
摘要:找新朋友 Problem Description 新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都是新朋友,现在会长想知道究竟有几个新朋友?请你编程序帮会长计算出来。 In 阅读全文
posted @ 2017-07-30 15:51 swallowblank 阅读(203) 评论(0) 推荐(0) 编辑
摘要:一开始根本不会状压dp,上网各种找题解,但发现他们写的都很......反正我作为一个没有接触过状态压缩的,根本看不懂! 然后看了好多状态压缩的题的题解,总结了一下思路,思路很重要,有了思路转换成计算机语言就好了。因此我先讲一下思路: 先说说地图,地图上每一行的01代表一个状态,比如输入样例中的111 阅读全文
posted @ 2016-09-07 13:30 swallowblank 阅读(2291) 评论(4) 推荐(1) 编辑

点击右上角即可分享
微信分享提示