题目链接
又是一道快乐翻车题
刚开始的模拟做法
#include <bits/stdc++.h>
using namespace std;
#define N 1005
int ans, m, n;
bool s[N];
int flag = 0, x[N], a[N];
int main()
{
cin >> m >> n;
for ( int i = 0 ; i < n ; i++ )
{
cin >> a[i];
if ( !s[a[i]] )
{
ans++;
s[x[flag]] = 0;
x[flag++] = a[i];
s[a[i]]=1;
if ( flag == m )
flag = 0;
}
}
cout << ans;
return 0;
}
90分,有一个点比标准答案多了2,想来想去也不知道是个什么鸟情况(
怒之,遂揭案而起,引西天惠普之神祇,名曰stl
其闻之,笑曰:以为是甚么盘根错节之物,竟惊动本座.此等小事,易如反掌矣.
霎时间天色异象,妖风四起,只见stl口中默念"#include<vector>",此题便骤然消弭,不知所踪.
谁赶紧把这个中二病拖走,丢死人了
#include <bits/stdc++.h>
using namespace std;
#define N 1005
int ans = 0, m, n, a[N];
vector<int> flag;
int main()
{
cin >> m >> n;
for ( int i = 0 ; i < n ; i++ )
{
cin >> a[i];
if ( find(flag.begin(), flag.end(), a[i]) == flag.end())
{
ans++;
flag.push_back(a[i]);
}
if ( flag.size() > m )
flag.erase(flag.begin());
}
cout << ans;
return 0;
}