NC22596. Rinne Loves Data Structure
描述
输入描述
第一行一个整数 N,表示操作次数。
接下来 N 行,第 i 行有一个值 ,表示第 i 次操作的 。
输出描述
N 行,每行输出该次操作完后的答案。
示例1
输入:
8 3 5 1 6 8 7 2 4
输出:
0 1 2 4 7 11 13 15
C++(clang++ 11.0.1) 解法, 执行用时: 958ms, 内存消耗: 37552K, 提交时间: 2023-07-14 17:58:00
#include<bits/stdc++.h> using namespace std; #define int long long const int N=1e6; const int mod = 3e5 + 5; int n; int x; set<int>s; map<int,int>mp; int ans; signed main(){ cin >> n; s.insert(-mod); s.insert(mod); mp[-mod] = -1; mp[mod] = -1; while(n--){ cin >> x; auto p = s.lower_bound(x); auto t = p--; mp[x] = max(mp[*p],mp[*t]) + 1; ans += mp[x]; s.insert(x); cout << ans << endl; } } /* 2 5 2 1 4 3 5 3 3 2 */