码迷,mamicode.com
首页 > 其他好文 > 详细

编辑器题目【栈。对顶堆】

时间:2020-04-26 15:31:11      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:algo   编辑   mic   none   exp   image   ace   span   width   

技术图片


用两个栈来模拟光标的移动,sum来维护A栈的前缀和,f用来维护最大值。


  1 #include <iostream>
  2 #include <algorithm>
  3 #include <stack>
  4 using namespace std;
  5 stack<int> A, B;
  6 constexpr size_t N = 1e6 + 5;
  7 int sum[N], f[N];
  8 
  9 int main() {
 10     int m;
 11     cin >> m;
 12     f[0] = -1e7;//初始化一定记住
 13     while (m --) {
 14         char cmd;
 15         int x;
 16         cin >> cmd;
 17         if (cmd == ‘I‘) {
 18             cin >> x;
 19             A.push(x);
 20             sum[A.size()] = sum[A.size() - 1] + x;
 21             f[A.size()] = max(f[A.size() - 1], sum[A.size()]);
 22         }
 23         if (cmd == ‘D‘)
 24             if (!A.empty())
 25                 A.pop();
 26 
 27         if (cmd == ‘L‘) {
 28             if(!A.empty()) {
 29                 B.push(A.top());
 30                 A.pop();
 31             }
 32         }
 33 
 34         if (cmd == ‘R‘) {
 35             if (!B.empty()) {
 36                 A.push(B.top());
 37                 B.pop();
 38                 sum[A.size()] = sum[A.size() - 1] + A.top();
 39                 f[A.size()] = max(f[A.size() - 1], sum[A.size()]);
 40             }
 41         }
 42 
 43         if (cmd == ‘Q‘) {
 44             cin >> x;
 45             cout << f[x] << endl;
 46         }
 47     }
 48     return 0;
 49 }
 50 

编辑器题目【栈。对顶堆】

标签:algo   编辑   mic   none   exp   image   ace   span   width   

原文地址:https://www.cnblogs.com/rstz/p/12779666.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!