| 比赛 |
NOIP2025模拟赛1 |
评测结果 |
AAATTTAAAA |
| 题目名称 |
接竹竿 |
最终得分 |
70 |
| 用户昵称 |
我常常追忆未来 |
运行时间 |
7.063 s |
| 代码语言 |
C++ |
内存使用 |
4.04 MiB |
| 提交时间 |
2025-11-24 09:27:31 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+7;
int a[N],n,m,t;
int main(){
freopen("bamboo.in","r",stdin);
freopen("bamboo.out","w",stdout);
cin.tie(0);
ios::sync_with_stdio(0);
cin>>t;
while(t--){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
unordered_map<int,int>nxt;
unordered_map<int,int>last;
for(int i=n;i>=1;i--){
if(last.find(a[i])!=last.end()){
nxt[i]=last[a[i]];
}
else{
nxt[i]=n+1;
}
last[a[i]]=i;
}
cin>>m;
while(m--){
int l,r;
cin>>l>>r;
int cnt=0;
int i=l;
while(i<=r){
if(nxt[i]<=r){
i=nxt[i]+1;
}
else{
cnt++;
i++;
}
}
cout<<cnt<<"\n";
}
}
return 0;
}