c++ ABC210C
时间: 2023-12-22 15:27:54 浏览: 33
ABC210C是一道关于滑动窗口和离散化的题目。下面是解题思路和代码实现:
解题思路:
1.使用map对颜色进行离散化,将颜色映射到1~n的整数范围内。
2.使用滑动窗口,维护窗口内颜色的种类数,当口内颜色种类数达到k时,更新答案。
3.移动窗口,更新窗口内颜色种类数。
代码实现:
```c++
#include <iostream>
#include <map>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
int c[n];
for (int i = 0; i < n; i++) {
cin >> c[i];
}
map<int, int> mp;
int ans = 0;
for (int i = 0; i < k; i++) {
mp[c[i]]++;
if (mp[c[i]] == 1) {
ans++;
}
}
int res = ans;
for (int i = k; i < n; i++) {
mp[c[i - k]]--;
if (mp[c[i - k]] == 0) {
ans--;
}
mp[c[i]]++;
if (mp[c[i]] == 1) {
ans++;
}
res = max(res, ans);
}
cout << res << endl;
return 0;
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)