社区讨论
求调90分,不玄关
P1638逛画展参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mm563wav
- 此快照首次捕获于
- 2026/02/28 01:30 2 周前
- 此快照最后确认于
- 2026/02/28 11:00 上周
复健发现橙题再做一遍都做不出来了,
超时了90分
CPP#include<bits/stdc++.h>
#define int long long
#define N (int)(2e6+5)
using namespace std;
int a[N];
unordered_map<int,int> b;
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
int n,m;
cin>>n>>m;
for(int i=1;i<=n;++i){
cin>>a[i];
}
int ansl=1,ansr=n,ct=1;
int l=1;
while(l<=n){
++l;
b.clear();
b[a[l]]++;
ct=1;
int r=l;
while(ct!=m&&l<=n&&r<n){
++r;
if(b[a[r]]==0)++ct;
++b[a[r]];
}
if(ct==m){
while(b[a[l]]-1!=0){
b[a[l]]--;
++l;
}
if(r-l<ansr-ansl){
ansl=l;
ansr=r;
}
}
}
cout<<ansl<<' '<<ansr;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...