codeforces 197C Lexicographically Maximum Subsequence

来源:互联网 发布:java生成log日志文件 编辑:程序博客网 时间:2024/04/30 16:55

给一个只含小写字符的字符串,求其字典序最大的子集并输出


先后按字符的字典序降序和其对应下标升序排序,然后贪心输出即可

#include <iostream>#include <map>#include <cstring>#include <string>#include <cstdio>#include <algorithm>#define rep(i, j, k) for(ll i = j; i <= k; i++)#define ll long long#define maxn 500009#define inf 0x7fffffffusing namespace std;int n, now = 0;struct wbysr{char x;int y;}a[maxn];bool cmp (wbysr x, wbysr y){return (x.x > y.x) || (x.x == y.x && x.y < y.y);}int main (){string s;cin >> s;n = s.length ();rep (i, 0, n - 1)a[i + 1].x = s[i], a[i + 1].y = i + 1;sort (a + 1, a + n + 1, cmp);rep (i, 1, n)if (a[i].y > now)printf ("%c", a[i].x), now = a[i].y;cout << endl;return 0;}



0 0
原创粉丝点击