Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <iostream>#include <cstring>#include <cstdlib>#include <algorithm>#include <map>#include <cmath>#include <queue>#include <vector>#include <functional>#include <set>#include <unordered_map>#include <unordered_set>#include <climits>#include <list>#include <numeric>#include <stack>using namespace std;using ll = int64_t;const ll mod = 1e9 + 7;const int INF = 0x3f3f3f3f;int lengthOfLIS(string& s) {vector<char> res;for(int i=0; i<s.size(); i++) {auto it = std::upper_bound(res.begin(), res.end(), s[i]);if(it==res.end()) res.push_back(s[i]);else *it = s[i];}