Codeforces 982 B. Bus of Characters(模拟一个栈)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces 982 B. Bus of Characters(模拟一个栈)相关的知识,希望对你有一定的参考价值。
解题思路:
排序之后模拟一个栈(也可以用真的栈),时间复杂度o(n)。
代码:
#include <bits/stdc++.h> using namespace std; typedef long long ll; struct node{ int val;int idx; }w[200010]; bool cmp(node x, node y){ return x.val < y.val; } char a[400010]; stack <node> s; int main(){ int n; scanf("%d", &n); for(int i = 1;i <= n; i++) scanf("%d", &w[i].val),w[i].idx = i; sort(w+1, w+1+n, cmp); scanf("%s", a+1); node l; int j = 1; for(int i = 1;i <= 2*n; i++){ if(a[i] == ‘0‘){ s.push(w[j++]); printf("%d ",w[j-1].idx); }else{ l = s.top(); printf("%d ",l.idx); s.pop(); } } return 0; }
以上是关于Codeforces 982 B. Bus of Characters(模拟一个栈)的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #484 (Div. 2) B. Bus of Characters(markdowm版)
Codeforces 555 B. Case of Fugitive
Codeforces Round #342 (Div. 2) B. War of the Corporations(贪心)
CodeForces576 B. Invariance of Tree