F-Tokitsukaze and Eliminate (hard)_2024牛客寒假算法基础集训营2 (nowcoder.com)
脑袋堵住了,红温没有写出来,后面想到思路直接给否定了,可惜
题解:需要你找最右边第一个,直接先统计一下有多少个颜色的宝石,然后从左往右依次放入set到相应的颜色数就加答案,然后如果这种颜色宝石没有了就需要把一开始统计数减一下即可,后面继续放到set就好了
#include <bits/stdc++.h> //#pragma GCC optimize("Ofast") #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <queue> #include <cmath> //#define double long double #define int long long //#define endl '\n' using namespace std; const int N=1e6+10,M=1e1; const int INF = 0x3f3f3f3f3f3f3f3f; const int mod=998244353; typedef pair<int,int> PII; int a[N]; set<int> b; map<int,int> mp; void solve() { int n; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; mp[a[i]]++; } int l=mp.size(); int ans=0; int c=0; for(int i=n;i>=1;i--) { b.insert(a[i]); mp[a[i]]--; if(mp[a[i]]==0) c++; if(b.size()==l) { ans++; l-=c; c=0; b.clear(); } } cout<<ans<<endl; mp.clear(); } signed main(){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int T=1; cin>>T; while(T--){ solve(); } return 0; }
标签:set,const,int,冬训,牛客,寒假,mp,--,include From: https://www.cnblogs.com/whatdo/p/18008744