#include<bits/stdc++.h>
using namespace std;
int n,a[15010],q,l,r,dp[15010],k[15],ans;
int read(){
int ans=0;char c=getchar();
while(c<'0'||c>'9')c=getchar();
while(c>='0'&&c<='9')ans=ans*10+c-'0',c=getchar();
return ans;
}int main(){
int T=read();
while(T--){
n=read();for(int i=1;i<=n;i++)a[i]=read();
for(int i=1;i<14;i++)k[i]=n+1;
for(int i=n;i>0;i--){dp[i]=k[a[i]];k[a[i]]=i;}
q=read();
while(q--){
l=read(),r=read();ans=0;
while(l<=r){
if(dp[l]>r)ans++,l++;
else l=dp[l]+1;
}printf("%d\n",ans);
}
}
return 0;
}
这样的思路的代码可以卡掉
这个的复杂度应该是O(13Tn)的,应该是可以过的
但实际:测试出来是#11TLE
建议加大时限,改到1.2s
这样其他不应该对的代码也不会对