Lexicographically Maximum Subsequence CodeForces - 197C 单调栈
2017-07-21 21:53
369 查看
题目链接: Lexicographically Maximum Subsequence CodeForces - 197C
题目大意
给你一个只包含小写字母大字符串s(|s|≤105), 求它字典序最大的子序列思路
字典序要大, 那么第一个字母一定要是所有字母里面最大的, 然后第二个字母一定要是第一个字母后面所有字母中最大的, 依次类推所以这个子序列: 原来字符串的顺序, 一定单调不递减(每次都取最大的)
可以将字符依次push进单调栈来得到, 代码简短高效
代码
#include <bits/stdc++.h> using namespace std; const int maxn = 2e5; char s[maxn], ans[maxn]; int main() { cin >> s; int len = 0; for(int i=0; s[i]!='\0'; ++i) { while(len > 0 && ans[len-1] < s[i]) --len; ans[len++] = s[i]; } for(int i=0; i<len; ++i) cout << ans[i]; cout << endl; return 0; }
相关文章推荐
- Codeforces Round #124 (Div. 2) / C. Lexicographically Maximum Subsequence
- codeforce Lexicographically Maximum Subsequence
- 【Codeforces Round #172】Codeforces 280D k-Maximum Subsequence Sum
- Codeforces 124c Lexicographically Maximum Subsequence
- Educational Codeforces Round 32:E. Maximum Subsequence(Meet-in-the-middle)
- Codeforces Gym - 101234J Zero Game [单调队列]
- Codeforces Round #172 (Div. 1) BMaximum Xor Secondary 单调栈
- Codeforces Round #291 (Div. 2) D. R2D2 and Droid Army RMQ/单调队列/尺取法
- Educational Codeforces Round 23 D. Imbalanced Array 单调栈
- Codeforces Round #305 (Div. 2) D. Mike and Feet 单调栈
- Educational Codeforces Round 15--AMaximum Increase--求最长上升数列的长度
- Codeforces Round #396 (Div. 2) A - Mahmoud and Longest Uncommon Subsequence B - Mahmoud and a Triangle
- 单调队列1004 Codeforces Round #154 (Div. 2) 253D. Table with Letters - 2
- UVA Live 7958 (Codeforces Gym 101201G) Maximum Islands 二分图染色+匹配
- 【Codeforces Round 326 (Div 2)D】【DP】Duff in Beach 数列重复取数最多k次使得单调不下降
- Little Pony and Expected Maximum CodeForces - 453A (数学期望)
- Codeforces Round #305 (Div. 2)——D单调/路径压缩——Mike and Feet
- Codeforces Round #189 (Div. 1) B. Psychos in a Line 单调队列
- Codeforces Round #172 (Div. 2) D. Maximum Xor Secondary 单调栈应用
- codeforces C. Find Maximum