随笔分类 -  数据结构-单调栈

摘要:题目链接 题意:求解两个字符串长度 大于等于k的所有相同子串对有多少个,子串可以相同,只要位置不同即可;两个字符串的长度不超过1e5; 如 s1 = "xx" 和 s2 = "xx",k = 1,这时s1[0] -> s2[0] 或s2[1],同理s1[1] 也可以对应两个,这时长度为1,当长度为2 阅读全文
posted @ 2016-04-12 19:40 hxer 阅读(172) 评论(0) 推荐(0)
摘要:题目链接:https://vijos.org/p/1003 题意: 1. 表达式只可能包含一个变量‘a’。 2. 表达式中出现的数都是正整数,而且都小于10000。 3. 表达式中可以包括四种运算‘+’(加),‘-’(减),‘*’(乘),‘^’(乘幂),以及小括号‘(’,‘)’。小括号的优先级最高, 阅读全文
posted @ 2016-03-22 13:56 hxer 阅读(340) 评论(0) 推荐(0)
摘要:题目链接:https://vijos.org/p/1165 题意:输入n(n <= 20,000)段线段的端点,问所有线段的长度总和为多少? input: 3 -1 1 5 11 2 9 output: 11 思路:将左右端点分成一个一个的点,并且标记输入的id.即弄成一个pair;排序之后模拟加点 阅读全文
posted @ 2016-03-19 15:59 hxer 阅读(227) 评论(0) 推荐(0)
摘要:题意:求解一串不出现数学公式只含'+','-','*','/', '(' , ')'的计算表达式,输出结果; 其中'/'是带小数的除法。并且输入的数值位double型,若是输入的运算符有误,或者出现除0错误,则直接输出intput error. 输入时除数值之间不能出现空格外,其他地方均能有空格。并 阅读全文
posted @ 2016-03-19 12:41 hxer 阅读(280) 评论(0) 推荐(0)
摘要:Bad Hair Day 题意:给n(n <= 800,000)头牛,每头牛都有一个高度h,每头牛都只能看到右边比它矮的牛的头发,将每头牛看到的牛的头发加起来为多少? 思路:每头要进栈的牛,将栈顶比其矮的牛出栈,因为这些牛都没有机会看到更后面的牛了,所以出栈;这时加上栈中的元素个数即可; 阅读全文
posted @ 2016-03-19 00:22 hxer 阅读(195) 评论(0) 推荐(0)
摘要:A Magic Lamp 题意:不能改变数字序列的顺序,从n个数中删除m个,输出删除后最小的数;(m<n<=1000)输出忽略前导0; 分析:这道题其实数据范围可以达到1e6;看很多人的题解都是ST或者是RMQ,其实是一道单调栈的题;O(n)的算法。 简单讲讲单调栈的思想:要求的是删除后最小的,那么 阅读全文
posted @ 2016-02-15 21:45 hxer 阅读(225) 评论(0) 推荐(0)
摘要:Feel Good 题意:给你一个非负整数数组,定义某个区间的参考值为:区间所有元素的和*区间最小元素。求该数组中的最大参考值以及对应的区间。 比如说有6个数3 1 6 4 5 2 最大参考值为6,4,5组成的区间,区间最小值为4,参考值为4*(6+5+4)=60 数据范围1<=n<=100000; 阅读全文
posted @ 2015-12-19 21:34 hxer 阅读(1118) 评论(0) 推荐(0)