看到题目我们可以从题目中获取部分关键信息,首先它时要求给定的区域时最小的,其次又是区间最优,通过最优我们可以想到单调性,切记:我们这里的单调条件就是:名画种类递增!
废话不多说,贴上代码:
#include <iostream>
#include <deque>
using namespace std;
const int N = 1e6+100;
const int M = 2010;
int b[N],cnt,a[N],m,n,ansl = 1e8,ansr = 1e8,ans = 1e8;
deque<int> q;
int main()
{
ios::sync_with_stdio(false);
cin >> n >> m;
for(int i = 1; i <= n; i ++ )
cin >> a[i];
for(int i = 1; i <= n; i ++ )
{
if(! b[a[i]])
cnt ++ ;
q.push_back(i);
b[a[i]] ++ ;
while(b[a[q.front()]] >= 2)
{
b[a[q.front()]] -- ;
q.pop_fro