[CF797C] Minimal string - 贪心,栈
Posted mollnn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CF797C] Minimal string - 贪心,栈相关的知识,希望对你有一定的参考价值。
Description
给出一个字符串,按照从前到后的顺序进栈,输出字典序最小的出栈序列
Solution
栈顶元素比未入栈的所有元素都小(不严格)时才出栈
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1000005;
char a[N],mx[N],s[N];
int n,top;
signed main() {
ios::sync_with_stdio(false);
cin>>a+1;
n=strlen(a+1);
mx[n+1]=127;
for(int i=n;i>=1;--i) mx[i]=min(a[i],mx[i+1]);
for(int i=1;i<=n;i++) {
s[++top]=a[i];
while(top && s[top]<=mx[i+1]) cout<<s[top], --top;
}
}
以上是关于[CF797C] Minimal string - 贪心,栈的主要内容,如果未能解决你的问题,请参考以下文章
CodeForces 797C Minimal string