stack
Forward in time
永不停止前进
展开
-
Leading Robots(物理追赶+单调栈)
这道题我一开始的思路是加速度小到大,然后加速度相同的位置小到大,然后枚举时间复杂度为n方。显然行不通。之后结束后看大佬的题解,才明白了。。。。。。排序还是我的那个思路。但是在处理谁追赶谁的问题上这两个条件真的难想。条件:1.如果排序之后在后面的,那么如果他的位置大于前面的,那么前面的肯定就没有机会做第一。2.如果有a,b,c。那么c追上b的条件是b追上a的时间必须小于c追上b的时间。如果大于或者等于,那么b还没有追上a的时候已经被c超过了。所以这时b就没有机会第一。那么条件就是这个了!在第二个.原创 2020-07-25 18:32:29 · 254 阅读 · 0 评论 -
B Bracket Sequence(stack+模拟)
题意:给出n个字符串,那么最开始是+,如果遇见一个括号,那么就+变*。或者*变成+;求左后表达式的值为多少;所以这道题就可以用模拟来写了;具体理解:这道题有个比较巧妙的就是这个初始化为+,只要遇见那么就变号,所以可以直接用stack来写;一个放运算符,一个放数字,但是注意这点:就是在这种情况下,记得把多余的加号去掉就行了;当时比赛的时候我没有把(入栈,就直接依靠变号来入栈,结果不知道为...原创 2020-03-15 21:23:27 · 254 阅读 · 0 评论 -
火车uva514(栈的逻辑)
#include<iostream>#include<stack>#include<string>using namespace std;//这道题虽然考栈但是在逻辑方面可是巧妙int main(){ stack<int> s; int n; int B[1001]; while (cin >> n) { mem...翻译 2019-03-01 21:11:36 · 120 阅读 · 0 评论 -
Maximum Element In A Stack(用数组模拟栈的最大值,我队友的想法,我觉得这个想法很聪明)
这道题题意很简单;就是根据题上的描述然后然后求的每次操作的最大值;最后就按照输出的公式给输出答案来就OK;这道题我也是无语了;我开头还想着用map,set,还有stack来写的;结果超时了;我当时就很懵逼了;T了几次,搞得我无语了;之后队友写了一下,他说直接用数组来模拟就行了;我说怎么模拟?他的思路就是:我把s数组s[0]=0;然后后面只要进来一个我就把s的顶部改为max(s[l...原创 2019-08-31 21:04:02 · 142 阅读 · 0 评论 -
C. Bad Sequence(stack括号匹配问题)
stack模拟思路:如果(进stack如果)那么检查是否与stack.top元素匹配;配对则出stack反之如stack;这道题手动写一下就会发现这个问题;如果(()这种,那么肯定不配对,因为左右数量不相等;如果是))))(((可以很明显知道如果用stack来存,那么最后的大小肯定是>2的那么肯定不可能成立;如果是())(如果是这种那么根据stack模拟那么stack最终大小为2...原创 2019-09-05 15:19:33 · 492 阅读 · 0 评论