栈
穷源溯流
路很长,尽管走便是。
展开
-
Codeforces Round #420 (Div. 2) C. Okabe and Boxes
有 2*n 次操作 add x,将 x 压入栈中 remove,将栈顶弹出 现在要求将栈弹出时可以形成一个 1~n 的顺序排列,所以我们可以趁栈不注意,在任意两次操作之间将栈内的元素重新排序,问形成最后的序列时,所用的最小的排序次数是多少 先模拟一个栈,如果栈顶元素不是下一个需要的数字那么将他们全部标记;注意如果有新的元素进来了,新元素不会影响它们的顺序,但会阻碍他们出栈 const int N=3e5+5; int n,m; int i,j,k; i...原创 2021-03-13 10:06:52 · 144 阅读 · 0 评论 -
C1. Pokémon Army (easy version)(栈模拟)
有 n 个数,从中选出任意 x (x 为随机数)个数但是不能打乱顺序,有 p 次操作,可以交换对应两个数的位置 现在要求你选出的这几个数中 能够构成 a1-a2+a3-a4……ax 值最大 输出最后的值 简单版本 p =0 const int N=3e5+5; int n,m,t; int i,j,k; ll a[N]; stack<ll> s; int main() { IOS; rush() { ...原创 2020-10-13 09:16:06 · 216 阅读 · 0 评论 -
将中缀表达式转化成后缀表达式
#include <iostream> #include <map> #include <stack> using namespace std; int n,m,t; int i,j,k; //int a[N]; map<char,int> mp; int main() { //IOS; mp['+']=mp['-']=1; mp['*']=mp['/']=2; mp['(']=3,mp['.原创 2020-10-13 08:32:09 · 2323 阅读 · 1 评论 -
C. Report
有 n 个数,及 m 次更改,每次更改输出两个字母 t 为 1 表示将前 r 个数不减排序,t 为 2 表示将前 r 个数不增排序,输出最后的结果 我们先考虑多组操作数据内,若存在 r=2,3,4,3,4,2 的情况,我们可以认为只进行了 4,2 的操作,即最后两步,也就是说我们将待排序的数列化简到了只对前 4 个数进行排列的程度 我们再看一组样例 : r=6,4,2 ,操作顺序为:a[5,6] 先进行排序,a[3,4] 再进行排序,a[1,2] 最后排就好了 也就是说经过第一步对 r 化简后..原创 2020-08-01 22:21:08 · 374 阅读 · 0 评论 -
Matrix Chain Multiplication
Suppose you have to evaluate an expression like ABCDE where A,B,C,D and E are matrices. Since matrix multiplication is associative, the order in which multiplications are performed is arbitrary. However, the number of elementary multiplications needed stro原创 2020-06-11 21:14:28 · 341 阅读 · 0 评论 -
Rails
波普什市有一个著名的火车站。那里的乡村有着令人难以置信的丘陵。这个车站建于上个世纪。不幸的是,当时的资金极为有限。只能建立一条地面轨道。此外,事实证明,空间站可能只是一个死胡同(见图),由于缺乏可用的空间,它只能有一个轨道。 在这里插入图片描述 当地的传统是,从A方向到达的每一列火车都会继续向B方向行驶,教练也会以某种方式重新组织起来。假设从A方向到达的列车编号为N<=1000辆客车,编号为1,2,…,N。列车重组主管必须知道是否有可能将客车继续沿B方向行驶,以便其顺序为A1、a2、.a。帮助他并编写原创 2020-06-11 20:51:30 · 680 阅读 · 0 评论 -
1355:字符串匹配问题(strs)
【题目描述】 字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式,从内到外必须是<>,(),[],{},例如。输入: [()] 输出:YES,而输入([]),([)]都应该输出NO。 【输入】 第一行为一个整数n,表示以下有多少个由括好组成的字符串。接下来的n行,每行都是一个由括号组成的长度不...原创 2020-04-01 15:32:14 · 1315 阅读 · 0 评论 -
1354:括弧匹配检验
【题目描述】 假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())或[([ ][ ])]等为正确的匹配,[( ])或([ ]( )或 ( ( ) ) )均为错误的匹配。 现在的问题是,要求检验一个给定表达式中的括弧是否正确匹配? 输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出 “OK” ,不匹配就输出“Wrong”。输入一个字符串:[...原创 2019-12-22 15:57:50 · 531 阅读 · 0 评论 -
1331:后缀表达式的值
【题目描述】 从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加(+)、减(—)、乘(*)、除(/)四种运算符。每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以@作为结束标志。 比如,16–9*(4+3)转换成后缀表达式为:16□9□4□3□+*–,在字符数组A中的形式为: 栈中的变化情况: 运行结果:-47 提示:输入字符串长度小于250,参与运算...原创 2019-12-22 15:14:28 · 849 阅读 · 0 评论