1506G. Maximize the Remaining String
生活随笔
收集整理的這篇文章主要介紹了
1506G. Maximize the Remaining String
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
G. Maximize the Remaining String
貪心,放置時,如果前面一個小比他小,并且后面還有,那么就把前面的刪除 #include <bits/stdc++.h> using namespace std; const int N = 3e5 + 3; #define int long long string str; char ans[N]; map<char,int>mp,vis; signed main() {int t;cin>>t;while (t--){int cnt = 0;cin>>str;int n = str.length();str = "1"+str;vis.clear(),mp.clear();memset(ans,0,sizeof ans);for (int i=1;i<=n;i++){mp[str[i]]=i;//記錄最后一個在哪出現}for (int i=1;i<=n;i++){if (vis[str[i]]) continue;//如果前面出現了while (ans[cnt]<str[i]&&mp[ans[cnt]]>i)//如果他比這個字符小并且后面還有vis[ans[cnt--]] = 0;ans[++cnt] = str[i];vis[str[i]] = 1;}for (int i=1;i<=cnt;i++)cout<<ans[i];cout<<endl;} }總結
以上是生活随笔為你收集整理的1506G. Maximize the Remaining String的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用DataTable作为存储过程的参数
- 下一篇: android车载蓝牙开发,车载蓝牙开发