| 比赛 |
NOIP2025模拟赛1 |
评测结果 |
AAAAAAAAAA |
| 题目名称 |
接竹竿 |
最终得分 |
100 |
| 用户昵称 |
李奇文 |
运行时间 |
1.236 s |
| 代码语言 |
C++ |
内存使用 |
4.33 MiB |
| 提交时间 |
2025-11-24 09:19:51 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=15005;
int t,l,r,ans;
int n,m,a[N],f[N],d[14];
void solve(){
cin>>n;
for(int i(1);i<=n;++i) cin>>a[i];
for(int i(1);i<=13;++i) d[i]=0;
for(int i(n);i>=1;--i) f[i]=d[a[i]],d[a[i]]=i;
cin>>m;
map<pair<int,int>,int>g;
for(int i(1);i<=m;++i){
ans=0;cin>>l>>r;
if(g.count({l,r})){ cout<<g[{l,r}]<<"\n";continue;}
for(int j=l;j<=r;++j) (l<=f[j]&&f[j]<=r)?j=f[j]:++ans;
g[{l,r}]=ans;
cout<<ans<<"\n";
}
return;
}
int main(){
freopen("bamboo.in","r",stdin);
freopen("bamboo.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>t;
while(t--){
solve();
}
return 0;
}