zoukankan      html  css  js  c++  java
  • Codeforces Round #401 (Div. 2) E. Hanoi Factory 栈

    E. Hanoi Factory

    链接:

    http://codeforces.com/contest/777/problem/E

    题解:

    排序b从小到大,在b相同排序a从小到大,使其满足如果i-1不能取,那么i-2也不能取,

    这样从后往前推入栈,如果不满足推出栈直到满足再推入栈,每次推入的答案记录最大值即可。

    代码:

     1 #include <map>
     2 #include <set>
     3 #include <cmath>
     4 #include <queue>
     5 #include <stack>
     6 #include <cstdio>
     7 #include <string>
     8 #include <vector>
     9 #include <cstring>
    10 #include <iostream>
    11 #include <algorithm>
    12 #include <functional>
    13 using namespace std;
    14 #define rep(i,a,n) for (int i=a;i<=n;i++)
    15 #define per(i,a,n) for (int i=n;i>=a;i--)
    16 #define pb push_back
    17 #define mp make_pair
    18 #define all(x) (x).begin(),(x).end()
    19 #define fi first
    20 #define se second
    21 #define SZ(x) ((int)(x).size())
    22 typedef vector<int> VI;
    23 typedef long long ll;
    24 typedef pair<int, int> PII;
    25 const ll mod = 1000000007;
    26 const int inf = 0x3f3f3f3f;
    27 const double eps = 1e-7;
    28 // head
    29 
    30 const int maxn = 1e5 + 7;
    31 
    32 struct Ring {
    33     int a, b;
    34     ll h;
    35     bool operator < (Ring r) {
    36         if (b == r.b) return a < r.a;
    37         return b < r.b;
    38     }
    39 }r[maxn];
    40 
    41 int main() {
    42     int n;
    43     cin >> n;
    44     rep(i, 1, n) cin >> r[i].a >> r[i].b >> r[i].h;
    45     sort(r + 1, r + 1 + n);
    46     stack<Ring> ms;
    47     ll ans = 0, sum = 0;
    48     per(i, 1, n) {
    49         while (1) {
    50             if (ms.empty()) break;
    51             if (ms.top().b >= r[i].b && ms.top().a < r[i].b) break;
    52             sum -= ms.top().h;
    53             ms.pop();
    54         }
    55         ms.push(r[i]);
    56         sum += r[i].h;
    57         ans = max(ans, sum);
    58     }
    59     cout << ans << endl;
    60     return 0;
    61 }
  • 相关阅读:
    MySQL Binlog解析(2)
    在线修改GTID模式
    官方online ddl
    pt-osc原理
    pt-osc使用方法
    python基本数据类型
    第一句python
    搭建私有云kodexplorer
    frp搭建
    Linux下快速分析DUMP文件
  • 原文地址:https://www.cnblogs.com/baocong/p/6441536.html
Copyright © 2011-2022 走看看